bootstrap.sh 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497
  1. #!/bin/bash
  2. ##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
  3. ##### Author: Travis Cross <tc@traviscross.com>
  4. codename="sid"
  5. modulelist_opt=""
  6. modules_add=""
  7. use_sysvinit=""
  8. while getopts "c:m:p:v" o; do
  9. case "$o" in
  10. c) codename="$OPTARG" ;;
  11. m) modulelist_opt="$OPTARG" ;;
  12. p) modules_add="$modules_add $OPTARG";;
  13. v) use_sysvinit="true";;
  14. esac
  15. done
  16. shift $(($OPTIND-1))
  17. if [ x${use_sysvinit} = x ]; then
  18. case "$codename" in
  19. wheezy|trusty|utopic|xenial) use_sysvinit="true";;
  20. *) use_sysvinit="false";;
  21. esac
  22. fi
  23. mod_dir="../src/mod"
  24. conf_dir="../conf"
  25. lang_dir="../conf/vanilla/lang"
  26. fs_description="FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media."
  27. mod_build_depends="." mod_depends="." mod_recommends="." mod_suggests="."
  28. supported_debian_distros="wheezy jessie stretch sid"
  29. supported_ubuntu_distros="trusty utopic xenial"
  30. supported_distros="$supported_debian_distros $supported_ubuntu_distros"
  31. avoid_mods=(
  32. applications/mod_sms_flowroute
  33. applications/mod_limit
  34. applications/mod_mongo
  35. applications/mod_mp4
  36. applications/mod_mp4v2
  37. applications/mod_osp
  38. applications/mod_rad_auth
  39. applications/mod_skel
  40. applications/mod_cluechoo
  41. asr_tts/mod_cepstral
  42. codecs/mod_com_g729
  43. codecs/mod_ilbc
  44. codecs/mod_openh264
  45. codecs/mod_siren
  46. codecs/mod_skel_codec
  47. endpoints/mod_gsmopen
  48. endpoints/mod_h323
  49. endpoints/mod_khomp
  50. endpoints/mod_opal
  51. endpoints/mod_reference
  52. endpoints/mod_unicall
  53. event_handlers/mod_smpp
  54. formats/mod_webm
  55. sdk/autotools
  56. xml_int/mod_xml_ldap
  57. xml_int/mod_xml_radius
  58. )
  59. avoid_mods_sid=(
  60. directories/mod_ldap
  61. )
  62. avoid_mods_jessie=(
  63. directories/mod_ldap
  64. )
  65. avoid_mods_wheezy=(
  66. event_handlers/mod_amqp
  67. languages/mod_java
  68. languages/mod_managed
  69. applications/mod_av
  70. applications/mod_cv
  71. applications/mod_hiredis
  72. formats/mod_shout
  73. applications/mod_sonar
  74. applications/mod_soundtouch
  75. formats/mod_vlc
  76. )
  77. avoid_mods_trusty=(
  78. event_handlers/mod_amqp
  79. codecs/mod_sangoma_codec
  80. )
  81. avoid_mods_utopic=(
  82. directories/mod_ldap
  83. codecs/mod_sangoma_codec
  84. )
  85. avoid_mods_xenial=(
  86. event_handlers/mod_ldap
  87. event_handlers/mod_amqp
  88. codecs/mod_sangoma_codec
  89. asr_tts/mod_flite
  90. )
  91. manual_pkgs=(
  92. freeswitch-all
  93. freeswitch
  94. libfreeswitch1
  95. freeswitch-meta-bare
  96. freeswitch-meta-default
  97. freeswitch-meta-vanilla
  98. freeswitch-meta-sorbet
  99. freeswitch-meta-all
  100. freeswitch-meta-codecs
  101. freeswitch-meta-conf
  102. freeswitch-meta-lang
  103. freeswitch-meta-mod-say
  104. freeswitch-all-dbg
  105. freeswitch-dbg
  106. libfreeswitch1-dbg
  107. libfreeswitch-dev
  108. freeswitch-doc
  109. freeswitch-lang
  110. freeswitch-timezones
  111. )
  112. if [ ${use_sysvinit} = "true" ]; then
  113. manual_pkgs=( "${manual_pkgs[@]}" "freeswitch-sysvinit" )
  114. else
  115. manual_pkgs=( "${manual_pkgs[@]}" "freeswitch-systemd" )
  116. fi
  117. err () {
  118. echo "$0 error: $1" >&2
  119. exit 1
  120. }
  121. xread () {
  122. local xIFS="$IFS"
  123. IFS=''
  124. read $@
  125. local ret=$?
  126. IFS="$xIFS"
  127. return $ret
  128. }
  129. intersperse () {
  130. local sep="$1"
  131. awk "
  132. BEGIN {
  133. first=1;
  134. sep=\"${sep}\";
  135. }"'
  136. /.*/ {
  137. if (first == 0) {
  138. printf "%s%s", sep, $0;
  139. } else {
  140. printf "%s", $0;
  141. }
  142. first=0;
  143. }
  144. END { printf "\n"; }'
  145. }
  146. postfix () {
  147. local px="$1"
  148. awk "
  149. BEGIN { px=\"${px}\"; }"'
  150. /.*/ { printf "%s%s\n", $0, px; }'
  151. }
  152. avoid_mod_filter () {
  153. local x="avoid_mods_$codename[@]"
  154. local -a mods=("${avoid_mods[@]}" "${!x}")
  155. for x in "${mods[@]}"; do
  156. if [ "$1" = "$x" ]; then
  157. [ "$2" = "show" ] && echo "excluding module $x" >&2
  158. return 1
  159. fi
  160. done
  161. return 0
  162. }
  163. modconf_filter () {
  164. while xread l; do
  165. if [ "$1" = "$l" ]; then
  166. [ "$2" = "show" ] && echo "including module $l" >&2
  167. return 0
  168. fi
  169. done < modules.conf
  170. return 1
  171. }
  172. mod_filter () {
  173. if test -f modules.conf; then
  174. modconf_filter $@
  175. else
  176. avoid_mod_filter $@
  177. fi
  178. }
  179. mod_filter_show () {
  180. mod_filter "$1" show
  181. }
  182. map_fs_modules () {
  183. local filterfn="$1" percatfns="$2" permodfns="$3"
  184. for x in $mod_dir/*; do
  185. test -d $x || continue
  186. test ! ${x##*/} = legacy || continue
  187. category=${x##*/} category_path=$x
  188. for f in $percatfns; do $f; done
  189. for y in $x/*; do
  190. module_name=${y##*/} module_path=$y
  191. module=$category/$module_name
  192. if $filterfn $category/$module; then
  193. [ -f ${y}/module ] && . ${y}/module
  194. for f in $permodfns; do $f; done
  195. fi
  196. unset module_name module_path module
  197. done
  198. unset category category_path
  199. done
  200. }
  201. map_modules () {
  202. local filterfn="$1" percatfns="$2" permodfns="$3"
  203. for x in $parse_dir/*; do
  204. test -d $x || continue
  205. category=${x##*/} category_path=$x
  206. for f in $percatfns; do $f; done
  207. for y in $x/*; do
  208. test -f $y || continue
  209. module=${y##*/} module_path=$y
  210. $filterfn $category/$module || continue
  211. module="" category="" module_name=""
  212. section="" description="" long_description=""
  213. build_depends="" depends="" recommends="" suggests=""
  214. distro_conflicts=""
  215. distro_vars=""
  216. for x in $supported_distros; do
  217. distro_vars="$distro_vars build_depends_$x"
  218. eval build_depends_$x=""
  219. done
  220. . $y
  221. [ -n "$description" ] || description="$module_name"
  222. [ -n "$long_description" ] || description="Adds ${module_name}."
  223. for f in $permodfns; do $f; done
  224. unset \
  225. module module_name module_path \
  226. section description long_description \
  227. build_depends depends recommends suggests \
  228. distro_conflicts $distro_vars
  229. done
  230. unset category category_path
  231. done
  232. }
  233. map_confs () {
  234. local fs="$1"
  235. for x in $conf_dir/*; do
  236. test ! -d $x && continue
  237. conf=${x##*/} conf_dir=$x
  238. for f in $fs; do $f; done
  239. unset conf conf_dir
  240. done
  241. }
  242. map_langs () {
  243. local fs="$1"
  244. for x in $lang_dir/*; do
  245. test ! -d $x && continue
  246. lang=${x##*/} lang_dir=$x
  247. for f in $fs; do $f; done
  248. unset lang lang_dir
  249. done
  250. }
  251. map_pkgs () {
  252. local fsx="$1"
  253. for x in "${manual_pkgs[@]}"; do
  254. $fsx $x
  255. done
  256. map_pkgs_confs () { $fsx "freeswitch-conf-${conf//_/-}"; }
  257. map_confs map_pkgs_confs
  258. map_pkgs_langs () { $fsx "freeswitch-lang-${lang//_/-}"; }
  259. map_langs map_pkgs_langs
  260. map_pkgs_mods () {
  261. $fsx "freeswitch-${module//_/-}"
  262. $fsx "freeswitch-${module//_/-}-dbg"; }
  263. map_modules map_pkgs_mods
  264. }
  265. list_pkgs () {
  266. list_pkgs_thunk () { printf '%s\n' "$1"; }
  267. map_pkgs list_pkgs_thunk
  268. }
  269. print_source_control () {
  270. local libtool_dep="libtool, libtool-bin"
  271. case "$codename" in
  272. wheezy|trusty) libtool_dep="libtool" ;;
  273. esac
  274. local debhelper_dep="debhelper (>= 8.0.0)"
  275. if [ ${use_sysvinit} = "false" ]; then
  276. debhelper_dep=${debhelper_dep}", dh-systemd"
  277. fi
  278. cat <<EOF
  279. Source: freeswitch
  280. Section: comm
  281. Priority: optional
  282. Maintainer: Travis Cross <tc@traviscross.com>
  283. Build-Depends:
  284. # for debian
  285. ${debhelper_dep},
  286. # bootstrapping
  287. automake (>= 1.9), autoconf, ${libtool_dep},
  288. # core build
  289. dpkg-dev (>= 1.15.8.12), gcc (>= 4:4.4.5), g++ (>= 4:4.4.5),
  290. libc6-dev (>= 2.11.3), make (>= 3.81),
  291. libpcre3-dev,
  292. libedit-dev (>= 2.11),
  293. libsqlite3-dev,
  294. wget, pkg-config,
  295. yasm,
  296. # core codecs
  297. libogg-dev, libspeex-dev, libspeexdsp-dev,
  298. # configure options
  299. libssl-dev, unixodbc-dev, libpq-dev,
  300. libncurses5-dev, libjpeg62-turbo-dev | libjpeg-turbo8-dev | libjpeg62-dev | libjpeg8-dev,
  301. python-dev, python-all-dev, python-support (>= 0.90) | dh-python, erlang-dev,
  302. # documentation
  303. doxygen,
  304. # for APR (not essential for build)
  305. uuid-dev, libexpat1-dev, libgdbm-dev, libdb-dev,
  306. # used by many modules
  307. libcurl4-openssl-dev | libcurl4-gnutls-dev | libcurl-dev,
  308. bison, zlib1g-dev,
  309. # module build-depends
  310. $(debian_wrap "${mod_build_depends}")
  311. Standards-Version: 3.9.3
  312. Homepage: https://freeswitch.org/
  313. Vcs-Git: https://freeswitch.org/stash/scm/fs/freeswitch.git
  314. Vcs-Browser: https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse
  315. EOF
  316. }
  317. print_core_control () {
  318. cat <<EOF
  319. Package: freeswitch-all
  320. Architecture: any
  321. Depends: freeswitch-meta-all (= \${binary:Version})
  322. Conflicts: freeswitch-all (<= 1.6.7)
  323. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  324. $(debian_wrap "${fs_description}")
  325. .
  326. This is a package which depends on all packaged FreeSWITCH modules.
  327. Package: freeswitch
  328. Architecture: any
  329. Depends: \${shlibs:Depends}, \${perl:Depends}, \${misc:Depends},
  330. libfreeswitch1 (= \${binary:Version})
  331. Recommends:
  332. Suggests: freeswitch-dbg
  333. Conflicts: freeswitch-all (<= 1.6.7)
  334. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  335. $(debian_wrap "${fs_description}")
  336. .
  337. This package contains the FreeSWITCH core.
  338. Package: libfreeswitch1
  339. Architecture: any
  340. Depends: \${shlibs:Depends}, \${misc:Depends}
  341. Recommends:
  342. Suggests: libfreeswitch1-dbg
  343. Conflicts: freeswitch-all (<= 1.6.7)
  344. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  345. $(debian_wrap "${fs_description}")
  346. .
  347. This package contains the FreeSWITCH core library.
  348. Package: python-esl
  349. Section: python
  350. Architecture: any
  351. Depends: \${shlibs:Depends}, \${misc:Depends}, \${python:Depends}
  352. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  353. $(debian_wrap "${fs_description}")
  354. .
  355. This package contains the Python binding for FreeSWITCH Event Socket Library (ESL).
  356. Package: libesl-perl
  357. Section: perl
  358. Architecture: any
  359. Depends: \${shlibs:Depends}, \${misc:Depends}, \${perl:Depends}
  360. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  361. $(debian_wrap "${fs_description}")
  362. .
  363. This package contains the Perl binding for FreeSWITCH Event Socket Library (ESL).
  364. Package: freeswitch-meta-bare
  365. Architecture: any
  366. Depends: \${misc:Depends}, freeswitch (= \${binary:Version})
  367. Recommends:
  368. freeswitch-doc (= \${binary:Version}),
  369. freeswitch-mod-commands (= \${binary:Version}),
  370. freeswitch-init,
  371. freeswitch-lang (= \${binary:Version}),
  372. freeswitch-timezones (= \${binary:Version}),
  373. freeswitch-music,
  374. freeswitch-sounds
  375. Suggests:
  376. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  377. $(debian_wrap "${fs_description}")
  378. .
  379. This is a metapackage which depends on the packages needed for a very
  380. bare FreeSWITCH install.
  381. Package: freeswitch-meta-default
  382. Architecture: any
  383. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  384. freeswitch-mod-commands (= \${binary:Version}),
  385. freeswitch-mod-conference (= \${binary:Version}),
  386. freeswitch-mod-db (= \${binary:Version}),
  387. freeswitch-mod-dptools (= \${binary:Version}),
  388. freeswitch-mod-fifo (= \${binary:Version}),
  389. freeswitch-mod-hash (= \${binary:Version}),
  390. freeswitch-mod-spandsp (= \${binary:Version}),
  391. freeswitch-mod-voicemail (= \${binary:Version}),
  392. freeswitch-mod-dialplan-xml (= \${binary:Version}),
  393. freeswitch-mod-loopback (= \${binary:Version}),
  394. freeswitch-mod-sofia (= \${binary:Version}),
  395. freeswitch-mod-local-stream (= \${binary:Version}),
  396. freeswitch-mod-native-file (= \${binary:Version}),
  397. freeswitch-mod-sndfile (= \${binary:Version}),
  398. freeswitch-mod-tone-stream (= \${binary:Version}),
  399. freeswitch-mod-lua (= \${binary:Version}),
  400. freeswitch-mod-console (= \${binary:Version}),
  401. freeswitch-mod-say-en (= \${binary:Version})
  402. Recommends:
  403. freeswitch-init,
  404. freeswitch-lang (= \${binary:Version}),
  405. freeswitch-timezones (= \${binary:Version}),
  406. freeswitch-meta-codecs (= \${binary:Version}),
  407. freeswitch-music,
  408. freeswitch-sounds
  409. Suggests:
  410. freeswitch-mod-cidlookup (= \${binary:Version}),
  411. freeswitch-mod-curl (= \${binary:Version}),
  412. freeswitch-mod-directory (= \${binary:Version}),
  413. freeswitch-mod-enum (= \${binary:Version}),
  414. freeswitch-mod-spy (= \${binary:Version}),
  415. freeswitch-mod-valet-parking (= \${binary:Version})
  416. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  417. $(debian_wrap "${fs_description}")
  418. .
  419. This is a metapackage which depends on the packages needed for a
  420. reasonably basic FreeSWITCH install.
  421. Package: freeswitch-meta-vanilla
  422. Architecture: any
  423. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  424. freeswitch-init,
  425. freeswitch-mod-console (= \${binary:Version}),
  426. freeswitch-mod-logfile (= \${binary:Version}),
  427. freeswitch-mod-enum (= \${binary:Version}),
  428. freeswitch-mod-cdr-csv (= \${binary:Version}),
  429. freeswitch-mod-event-socket (= \${binary:Version}),
  430. freeswitch-mod-sofia (= \${binary:Version}),
  431. freeswitch-mod-loopback (= \${binary:Version}),
  432. freeswitch-mod-commands (= \${binary:Version}),
  433. freeswitch-mod-conference (= \${binary:Version}),
  434. freeswitch-mod-db (= \${binary:Version}),
  435. freeswitch-mod-dptools (= \${binary:Version}),
  436. freeswitch-mod-expr (= \${binary:Version}),
  437. freeswitch-mod-fifo (= \${binary:Version}),
  438. freeswitch-mod-hash (= \${binary:Version}),
  439. freeswitch-mod-voicemail (= \${binary:Version}),
  440. freeswitch-mod-esf (= \${binary:Version}),
  441. freeswitch-mod-fsv (= \${binary:Version}),
  442. freeswitch-mod-valet-parking (= \${binary:Version}),
  443. freeswitch-mod-httapi (= \${binary:Version}),
  444. freeswitch-mod-dialplan-xml (= \${binary:Version}),
  445. freeswitch-mod-dialplan-asterisk (= \${binary:Version}),
  446. freeswitch-mod-spandsp (= \${binary:Version}),
  447. freeswitch-mod-g723-1 (= \${binary:Version}),
  448. freeswitch-mod-g729 (= \${binary:Version}),
  449. freeswitch-mod-amr (= \${binary:Version}),
  450. freeswitch-mod-h26x (= \${binary:Version}),
  451. freeswitch-mod-sndfile (= \${binary:Version}),
  452. freeswitch-mod-native-file (= \${binary:Version}),
  453. freeswitch-mod-local-stream (= \${binary:Version}),
  454. freeswitch-mod-tone-stream (= \${binary:Version}),
  455. freeswitch-mod-lua (= \${binary:Version}),
  456. freeswitch-mod-say-en (= \${binary:Version}),
  457. Recommends:
  458. freeswitch-lang (= \${binary:Version}),
  459. freeswitch-timezones (= \${binary:Version}),
  460. freeswitch-music,
  461. freeswitch-sounds,
  462. freeswitch-conf-vanilla (= \${binary:Version}),
  463. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  464. $(debian_wrap "${fs_description}")
  465. .
  466. This is a metapackage which depends on the packages needed for
  467. running the FreeSWITCH vanilla example configuration.
  468. Package: freeswitch-meta-sorbet
  469. Architecture: any
  470. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  471. Recommends:
  472. freeswitch-init,
  473. freeswitch-lang (= \${binary:Version}),
  474. freeswitch-timezones (= \${binary:Version}),
  475. freeswitch-meta-codecs (= \${binary:Version}),
  476. freeswitch-music,
  477. freeswitch-sounds,
  478. freeswitch-mod-abstraction (= \${binary:Version}),
  479. freeswitch-mod-avmd (= \${binary:Version}),
  480. freeswitch-mod-blacklist (= \${binary:Version}),
  481. freeswitch-mod-callcenter (= \${binary:Version}),
  482. freeswitch-mod-cidlookup (= \${binary:Version}),
  483. freeswitch-mod-commands (= \${binary:Version}),
  484. freeswitch-mod-conference (= \${binary:Version}),
  485. freeswitch-mod-curl (= \${binary:Version}),
  486. freeswitch-mod-db (= \${binary:Version}),
  487. freeswitch-mod-directory (= \${binary:Version}),
  488. freeswitch-mod-distributor (= \${binary:Version}),
  489. freeswitch-mod-dptools (= \${binary:Version}),
  490. freeswitch-mod-easyroute (= \${binary:Version}),
  491. freeswitch-mod-enum (= \${binary:Version}),
  492. freeswitch-mod-esf (= \${binary:Version}),
  493. freeswitch-mod-esl (= \${binary:Version}),
  494. freeswitch-mod-expr (= \${binary:Version}),
  495. freeswitch-mod-fifo (= \${binary:Version}),
  496. freeswitch-mod-fsk (= \${binary:Version}),
  497. freeswitch-mod-fsv (= \${binary:Version}),
  498. freeswitch-mod-hash (= \${binary:Version}),
  499. freeswitch-mod-httapi (= \${binary:Version}),
  500. freeswitch-mod-http-cache (= \${binary:Version}),
  501. freeswitch-mod-lcr (= \${binary:Version}),
  502. freeswitch-mod-nibblebill (= \${binary:Version}),
  503. freeswitch-mod-oreka (= \${binary:Version}),
  504. freeswitch-mod-redis (= \${binary:Version}),
  505. freeswitch-mod-rss (= \${binary:Version}),
  506. freeswitch-mod-sms (= \${binary:Version}),
  507. freeswitch-mod-snapshot (= \${binary:Version}),
  508. freeswitch-mod-snom (= \${binary:Version}),
  509. freeswitch-mod-sonar (= \${binary:Version}),
  510. freeswitch-mod-soundtouch (= \${binary:Version}),
  511. freeswitch-mod-spandsp (= \${binary:Version}),
  512. freeswitch-mod-spy (= \${binary:Version}),
  513. freeswitch-mod-stress (= \${binary:Version}),
  514. freeswitch-mod-valet-parking (= \${binary:Version}),
  515. freeswitch-mod-vmd (= \${binary:Version}),
  516. freeswitch-mod-voicemail (= \${binary:Version}),
  517. freeswitch-mod-voicemail-ivr (= \${binary:Version}),
  518. freeswitch-mod-flite (= \${binary:Version}),
  519. freeswitch-mod-pocketsphinx (= \${binary:Version}),
  520. freeswitch-mod-tts-commandline (= \${binary:Version}),
  521. freeswitch-mod-dialplan-xml (= \${binary:Version}),
  522. freeswitch-mod-loopback (= \${binary:Version}),
  523. freeswitch-mod-rtmp (= \${binary:Version}),
  524. freeswitch-mod-skinny (= \${binary:Version}),
  525. freeswitch-mod-sofia (= \${binary:Version}),
  526. freeswitch-mod-cdr-csv (= \${binary:Version}),
  527. freeswitch-mod-cdr-sqlite (= \${binary:Version}),
  528. freeswitch-mod-event-socket (= \${binary:Version}),
  529. freeswitch-mod-json-cdr (= \${binary:Version}),
  530. freeswitch-mod-local-stream (= \${binary:Version}),
  531. freeswitch-mod-native-file (= \${binary:Version}),
  532. freeswitch-mod-shell-stream (= \${binary:Version}),
  533. freeswitch-mod-sndfile (= \${binary:Version}),
  534. freeswitch-mod-tone-stream (= \${binary:Version}),
  535. freeswitch-mod-lua (= \${binary:Version}),
  536. freeswitch-mod-console (= \${binary:Version}),
  537. freeswitch-mod-logfile (= \${binary:Version}),
  538. freeswitch-mod-syslog (= \${binary:Version}),
  539. freeswitch-mod-say-en (= \${binary:Version}),
  540. freeswitch-mod-posix-timer (= \${binary:Version}),
  541. freeswitch-mod-timerfd (= \${binary:Version}),
  542. freeswitch-mod-xml-cdr (= \${binary:Version}),
  543. freeswitch-mod-xml-curl (= \${binary:Version}),
  544. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  545. $(debian_wrap "${fs_description}")
  546. .
  547. This is a metapackage which recommends most packaged FreeSWITCH
  548. modules except a few which aren't recommended.
  549. Package: freeswitch-meta-all
  550. Architecture: any
  551. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  552. freeswitch-init,
  553. freeswitch-lang (= \${binary:Version}),
  554. freeswitch-timezones (= \${binary:Version}),
  555. freeswitch-meta-codecs (= \${binary:Version}),
  556. freeswitch-meta-conf (= \${binary:Version}),
  557. freeswitch-meta-lang (= \${binary:Version}),
  558. freeswitch-meta-mod-say (= \${binary:Version}),
  559. freeswitch-music,
  560. freeswitch-sounds,
  561. freeswitch-mod-abstraction (= \${binary:Version}),
  562. freeswitch-mod-avmd (= \${binary:Version}),
  563. freeswitch-mod-av (= \${binary:Version}),
  564. freeswitch-mod-blacklist (= \${binary:Version}),
  565. freeswitch-mod-callcenter (= \${binary:Version}),
  566. freeswitch-mod-cidlookup (= \${binary:Version}),
  567. freeswitch-mod-commands (= \${binary:Version}),
  568. freeswitch-mod-conference (= \${binary:Version}),
  569. freeswitch-mod-curl (= \${binary:Version}),
  570. freeswitch-mod-db (= \${binary:Version}),
  571. freeswitch-mod-directory (= \${binary:Version}),
  572. freeswitch-mod-distributor (= \${binary:Version}),
  573. freeswitch-mod-dptools (= \${binary:Version}),
  574. freeswitch-mod-easyroute (= \${binary:Version}),
  575. freeswitch-mod-enum (= \${binary:Version}),
  576. freeswitch-mod-esf (= \${binary:Version}),
  577. freeswitch-mod-esl (= \${binary:Version}),
  578. freeswitch-mod-expr (= \${binary:Version}),
  579. freeswitch-mod-fifo (= \${binary:Version}),
  580. freeswitch-mod-fsk (= \${binary:Version}),
  581. freeswitch-mod-fsv (= \${binary:Version}),
  582. freeswitch-mod-hash (= \${binary:Version}),
  583. freeswitch-mod-httapi (= \${binary:Version}),
  584. freeswitch-mod-http-cache (= \${binary:Version}),
  585. freeswitch-mod-lcr (= \${binary:Version}),
  586. freeswitch-mod-memcache (= \${binary:Version}),
  587. freeswitch-mod-nibblebill (= \${binary:Version}),
  588. freeswitch-mod-oreka (= \${binary:Version}),
  589. freeswitch-mod-png (= \${binary:Version}),
  590. freeswitch-mod-redis (= \${binary:Version}),
  591. freeswitch-mod-rss (= \${binary:Version}),
  592. freeswitch-mod-sms (= \${binary:Version}),
  593. freeswitch-mod-snapshot (= \${binary:Version}),
  594. freeswitch-mod-snom (= \${binary:Version}),
  595. freeswitch-mod-sonar (= \${binary:Version}),
  596. freeswitch-mod-soundtouch (= \${binary:Version}),
  597. freeswitch-mod-spandsp (= \${binary:Version}),
  598. freeswitch-mod-spy (= \${binary:Version}),
  599. freeswitch-mod-stress (= \${binary:Version}),
  600. freeswitch-mod-translate (= \${binary:Version}),
  601. freeswitch-mod-valet-parking (= \${binary:Version}),
  602. freeswitch-mod-voicemail (= \${binary:Version}),
  603. freeswitch-mod-voicemail-ivr (= \${binary:Version}),
  604. freeswitch-mod-flite (= \${binary:Version}),
  605. freeswitch-mod-pocketsphinx (= \${binary:Version}),
  606. freeswitch-mod-tts-commandline (= \${binary:Version}),
  607. freeswitch-mod-unimrcp (= \${binary:Version}),
  608. freeswitch-mod-dialplan-asterisk (= \${binary:Version}),
  609. freeswitch-mod-dialplan-directory (= \${binary:Version}),
  610. freeswitch-mod-dialplan-xml (= \${binary:Version}),
  611. freeswitch-mod-dingaling (= \${binary:Version}),
  612. freeswitch-mod-loopback (= \${binary:Version}),
  613. freeswitch-mod-portaudio (= \${binary:Version}),
  614. freeswitch-mod-rtc (= \${binary:Version}),
  615. freeswitch-mod-rtmp (= \${binary:Version}),
  616. freeswitch-mod-skinny (= \${binary:Version}),
  617. freeswitch-mod-skypopen (= \${binary:Version}),
  618. freeswitch-mod-sofia (= \${binary:Version}),
  619. freeswitch-mod-verto (= \${binary:Version}),
  620. freeswitch-mod-cdr-csv (= \${binary:Version}),
  621. freeswitch-mod-cdr-mongodb (= \${binary:Version}),
  622. freeswitch-mod-cdr-sqlite (= \${binary:Version}),
  623. freeswitch-mod-erlang-event (= \${binary:Version}),
  624. freeswitch-mod-event-multicast (= \${binary:Version}),
  625. freeswitch-mod-event-socket (= \${binary:Version}),
  626. freeswitch-mod-json-cdr (= \${binary:Version}),
  627. freeswitch-mod-kazoo (= \${binary:Version}),
  628. freeswitch-mod-snmp (= \${binary:Version}),
  629. freeswitch-mod-local-stream (= \${binary:Version}),
  630. freeswitch-mod-native-file (= \${binary:Version}),
  631. freeswitch-mod-portaudio-stream (= \${binary:Version}),
  632. freeswitch-mod-shell-stream (= \${binary:Version}),
  633. freeswitch-mod-sndfile (= \${binary:Version}),
  634. freeswitch-mod-tone-stream (= \${binary:Version}),
  635. freeswitch-mod-java (= \${binary:Version}),
  636. freeswitch-mod-lua (= \${binary:Version}),
  637. freeswitch-mod-perl (= \${binary:Version}),
  638. freeswitch-mod-python (= \${binary:Version}),
  639. freeswitch-mod-yaml (= \${binary:Version}),
  640. freeswitch-mod-console (= \${binary:Version}),
  641. freeswitch-mod-logfile (= \${binary:Version}),
  642. freeswitch-mod-syslog (= \${binary:Version}),
  643. freeswitch-mod-posix-timer (= \${binary:Version}),
  644. freeswitch-mod-timerfd (= \${binary:Version}),
  645. freeswitch-mod-xml-cdr (= \${binary:Version}),
  646. freeswitch-mod-xml-curl (= \${binary:Version}),
  647. freeswitch-mod-xml-rpc (= \${binary:Version}),
  648. freeswitch-mod-xml-scgi (= \${binary:Version}),
  649. Recommends:
  650. Suggests:
  651. freeswitch-mod-vmd (= \${binary:Version}),
  652. freeswitch-mod-vlc (= \${binary:Version}),
  653. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  654. $(debian_wrap "${fs_description}")
  655. .
  656. This is a metapackage which recommends or suggests all packaged
  657. FreeSWITCH modules.
  658. Package: freeswitch-meta-codecs
  659. Architecture: any
  660. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  661. freeswitch-mod-amr (= \${binary:Version}),
  662. freeswitch-mod-amrwb (= \${binary:Version}),
  663. freeswitch-mod-b64 (= \${binary:Version}),
  664. freeswitch-mod-bv (= \${binary:Version}),
  665. freeswitch-mod-codec2 (= \${binary:Version}),
  666. freeswitch-mod-dahdi-codec (= \${binary:Version}),
  667. freeswitch-mod-g723-1 (= \${binary:Version}),
  668. freeswitch-mod-g729 (= \${binary:Version}),
  669. freeswitch-mod-h26x (= \${binary:Version}),
  670. freeswitch-mod-isac (= \${binary:Version}),
  671. freeswitch-mod-mp4v (= \${binary:Version}),
  672. freeswitch-mod-opus (= \${binary:Version}),
  673. freeswitch-mod-silk (= \${binary:Version}),
  674. freeswitch-mod-spandsp (= \${binary:Version}),
  675. freeswitch-mod-theora (= \${binary:Version}),
  676. Suggests:
  677. freeswitch-mod-ilbc (= \${binary:Version}),
  678. freeswitch-mod-siren (= \${binary:Version})
  679. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  680. $(debian_wrap "${fs_description}")
  681. .
  682. This is a metapackage which depends on the packages needed to install
  683. most FreeSWITCH codecs.
  684. Package: freeswitch-meta-codecs-dbg
  685. Architecture: any
  686. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  687. freeswitch-mod-amr-dbg (= \${binary:Version}),
  688. freeswitch-mod-amrwb-dbg (= \${binary:Version}),
  689. freeswitch-mod-b64-dbg (= \${binary:Version}),
  690. freeswitch-mod-bv-dbg (= \${binary:Version}),
  691. freeswitch-mod-codec2-dbg (= \${binary:Version}),
  692. freeswitch-mod-dahdi-codec-dbg (= \${binary:Version}),
  693. freeswitch-mod-g723-1-dbg (= \${binary:Version}),
  694. freeswitch-mod-g729-dbg (= \${binary:Version}),
  695. freeswitch-mod-h26x-dbg (= \${binary:Version}),
  696. freeswitch-mod-isac-dbg (= \${binary:Version}),
  697. freeswitch-mod-mp4v-dbg (= \${binary:Version}),
  698. freeswitch-mod-opus-dbg (= \${binary:Version}),
  699. freeswitch-mod-silk-dbg (= \${binary:Version}),
  700. freeswitch-mod-spandsp-dbg (= \${binary:Version}),
  701. freeswitch-mod-theora-dbg (= \${binary:Version}),
  702. Suggests:
  703. freeswitch-mod-ilbc-dbg (= \${binary:Version}),
  704. freeswitch-mod-siren-dbg (= \${binary:Version})
  705. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  706. $(debian_wrap "${fs_description}")
  707. .
  708. This is a metapackage which depends on the packages needed to install
  709. most FreeSWITCH codecs.
  710. Package: freeswitch-meta-conf
  711. Architecture: all
  712. Depends: \${misc:Depends},
  713. freeswitch-conf-curl (= \${binary:Version}),
  714. freeswitch-conf-insideout (= \${binary:Version}),
  715. freeswitch-conf-sbc (= \${binary:Version}),
  716. freeswitch-conf-softphone (= \${binary:Version}),
  717. freeswitch-conf-vanilla (= \${binary:Version}),
  718. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  719. $(debian_wrap "${fs_description}")
  720. .
  721. This is a metapackage which depends on the available configuration
  722. examples for FreeSWITCH.
  723. Package: freeswitch-meta-lang
  724. Architecture: all
  725. Depends: \${misc:Depends},
  726. freeswitch-lang-de (= \${binary:Version}),
  727. freeswitch-lang-en (= \${binary:Version}),
  728. freeswitch-lang-es (= \${binary:Version}),
  729. freeswitch-lang-fr (= \${binary:Version}),
  730. freeswitch-lang-he (= \${binary:Version}),
  731. freeswitch-lang-pt (= \${binary:Version}),
  732. freeswitch-lang-ru (= \${binary:Version}),
  733. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  734. $(debian_wrap "${fs_description}")
  735. .
  736. This is a metapackage which depends on all language files for
  737. FreeSWITCH.
  738. Package: freeswitch-meta-mod-say
  739. Architecture: any
  740. Depends: \${misc:Depends},
  741. freeswitch-mod-say-de (= \${binary:Version}),
  742. freeswitch-mod-say-en (= \${binary:Version}),
  743. freeswitch-mod-say-es (= \${binary:Version}),
  744. freeswitch-mod-say-fa (= \${binary:Version}),
  745. freeswitch-mod-say-fr (= \${binary:Version}),
  746. freeswitch-mod-say-he (= \${binary:Version}),
  747. freeswitch-mod-say-hr (= \${binary:Version}),
  748. freeswitch-mod-say-hu (= \${binary:Version}),
  749. freeswitch-mod-say-it (= \${binary:Version}),
  750. freeswitch-mod-say-ja (= \${binary:Version}),
  751. freeswitch-mod-say-nl (= \${binary:Version}),
  752. freeswitch-mod-say-pl (= \${binary:Version}),
  753. freeswitch-mod-say-pt (= \${binary:Version}),
  754. freeswitch-mod-say-ru (= \${binary:Version}),
  755. freeswitch-mod-say-th (= \${binary:Version}),
  756. freeswitch-mod-say-zh (= \${binary:Version}),
  757. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  758. $(debian_wrap "${fs_description}")
  759. .
  760. This is a metapackage which depends on all mod_say languages for
  761. FreeSWITCH.
  762. Package: freeswitch-meta-mod-say-dbg
  763. Architecture: any
  764. Depends: \${misc:Depends},
  765. freeswitch-mod-say-de-dbg (= \${binary:Version}),
  766. freeswitch-mod-say-en-dbg (= \${binary:Version}),
  767. freeswitch-mod-say-es-dbg (= \${binary:Version}),
  768. freeswitch-mod-say-fa-dbg (= \${binary:Version}),
  769. freeswitch-mod-say-fr-dbg (= \${binary:Version}),
  770. freeswitch-mod-say-he-dbg (= \${binary:Version}),
  771. freeswitch-mod-say-hr-dbg (= \${binary:Version}),
  772. freeswitch-mod-say-hu-dbg (= \${binary:Version}),
  773. freeswitch-mod-say-it-dbg (= \${binary:Version}),
  774. freeswitch-mod-say-ja-dbg (= \${binary:Version}),
  775. freeswitch-mod-say-nl-dbg (= \${binary:Version}),
  776. freeswitch-mod-say-pl-dbg (= \${binary:Version}),
  777. freeswitch-mod-say-pt-dbg (= \${binary:Version}),
  778. freeswitch-mod-say-ru-dbg (= \${binary:Version}),
  779. freeswitch-mod-say-th-dbg (= \${binary:Version}),
  780. freeswitch-mod-say-zh-dbg (= \${binary:Version}),
  781. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  782. $(debian_wrap "${fs_description}")
  783. .
  784. This is a metapackage which depends on all mod_say languages for
  785. FreeSWITCH.
  786. Package: freeswitch-meta-all-dbg
  787. Architecture: any
  788. Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
  789. freeswitch-meta-codecs-dbg (= \${binary:Version}),
  790. freeswitch-meta-mod-say (= \${binary:Version}),
  791. freeswitch-mod-abstraction-dbg (= \${binary:Version}),
  792. freeswitch-mod-avmd-dbg (= \${binary:Version}),
  793. freeswitch-mod-av-dbg (= \${binary:Version}),
  794. freeswitch-mod-blacklist-dbg (= \${binary:Version}),
  795. freeswitch-mod-callcenter-dbg (= \${binary:Version}),
  796. freeswitch-mod-cidlookup-dbg (= \${binary:Version}),
  797. freeswitch-mod-commands-dbg (= \${binary:Version}),
  798. freeswitch-mod-conference-dbg (= \${binary:Version}),
  799. freeswitch-mod-curl-dbg (= \${binary:Version}),
  800. freeswitch-mod-db-dbg (= \${binary:Version}),
  801. freeswitch-mod-directory-dbg (= \${binary:Version}),
  802. freeswitch-mod-distributor-dbg (= \${binary:Version}),
  803. freeswitch-mod-dptools-dbg (= \${binary:Version}),
  804. freeswitch-mod-easyroute-dbg (= \${binary:Version}),
  805. freeswitch-mod-enum-dbg (= \${binary:Version}),
  806. freeswitch-mod-esf-dbg (= \${binary:Version}),
  807. freeswitch-mod-esl-dbg (= \${binary:Version}),
  808. freeswitch-mod-expr-dbg (= \${binary:Version}),
  809. freeswitch-mod-fifo-dbg (= \${binary:Version}),
  810. freeswitch-mod-fsk-dbg (= \${binary:Version}),
  811. freeswitch-mod-fsv-dbg (= \${binary:Version}),
  812. freeswitch-mod-hash-dbg (= \${binary:Version}),
  813. freeswitch-mod-httapi-dbg (= \${binary:Version}),
  814. freeswitch-mod-http-cache-dbg (= \${binary:Version}),
  815. freeswitch-mod-lcr-dbg (= \${binary:Version}),
  816. freeswitch-mod-memcache-dbg (= \${binary:Version}),
  817. freeswitch-mod-nibblebill-dbg (= \${binary:Version}),
  818. freeswitch-mod-oreka-dbg (= \${binary:Version}),
  819. freeswitch-mod-png-dbg (= \${binary:Version}),
  820. freeswitch-mod-redis-dbg (= \${binary:Version}),
  821. freeswitch-mod-rss-dbg (= \${binary:Version}),
  822. freeswitch-mod-sms-dbg (= \${binary:Version}),
  823. freeswitch-mod-snapshot-dbg (= \${binary:Version}),
  824. freeswitch-mod-snom-dbg (= \${binary:Version}),
  825. freeswitch-mod-sonar-dbg (= \${binary:Version}),
  826. freeswitch-mod-soundtouch-dbg (= \${binary:Version}),
  827. freeswitch-mod-spandsp-dbg (= \${binary:Version}),
  828. freeswitch-mod-spy-dbg (= \${binary:Version}),
  829. freeswitch-mod-stress-dbg (= \${binary:Version}),
  830. freeswitch-mod-translate-dbg (= \${binary:Version}),
  831. freeswitch-mod-valet-parking-dbg (= \${binary:Version}),
  832. freeswitch-mod-voicemail-dbg (= \${binary:Version}),
  833. freeswitch-mod-voicemail-ivr-dbg (= \${binary:Version}),
  834. freeswitch-mod-flite-dbg (= \${binary:Version}),
  835. freeswitch-mod-pocketsphinx-dbg (= \${binary:Version}),
  836. freeswitch-mod-tts-commandline-dbg (= \${binary:Version}),
  837. freeswitch-mod-unimrcp-dbg (= \${binary:Version}),
  838. freeswitch-mod-dialplan-asterisk-dbg (= \${binary:Version}),
  839. freeswitch-mod-dialplan-directory-dbg (= \${binary:Version}),
  840. freeswitch-mod-dialplan-xml-dbg (= \${binary:Version}),
  841. freeswitch-mod-dingaling-dbg (= \${binary:Version}),
  842. freeswitch-mod-loopback-dbg (= \${binary:Version}),
  843. freeswitch-mod-portaudio-dbg (= \${binary:Version}),
  844. freeswitch-mod-rtc-dbg (= \${binary:Version}),
  845. freeswitch-mod-rtmp-dbg (= \${binary:Version}),
  846. freeswitch-mod-skinny-dbg (= \${binary:Version}),
  847. freeswitch-mod-skypopen-dbg (= \${binary:Version}),
  848. freeswitch-mod-sofia-dbg (= \${binary:Version}),
  849. freeswitch-mod-verto-dbg (= \${binary:Version}),
  850. freeswitch-mod-cdr-csv-dbg (= \${binary:Version}),
  851. freeswitch-mod-cdr-mongodb-dbg (= \${binary:Version}),
  852. freeswitch-mod-cdr-sqlite-dbg (= \${binary:Version}),
  853. freeswitch-mod-erlang-event-dbg (= \${binary:Version}),
  854. freeswitch-mod-event-multicast-dbg (= \${binary:Version}),
  855. freeswitch-mod-event-socket-dbg (= \${binary:Version}),
  856. freeswitch-mod-json-cdr-dbg (= \${binary:Version}),
  857. freeswitch-mod-kazoo-dbg (= \${binary:Version}),
  858. freeswitch-mod-snmp-dbg (= \${binary:Version}),
  859. freeswitch-mod-local-stream-dbg (= \${binary:Version}),
  860. freeswitch-mod-native-file-dbg (= \${binary:Version}),
  861. freeswitch-mod-portaudio-stream-dbg (= \${binary:Version}),
  862. freeswitch-mod-shell-stream-dbg (= \${binary:Version}),
  863. freeswitch-mod-sndfile-dbg (= \${binary:Version}),
  864. freeswitch-mod-tone-stream-dbg (= \${binary:Version}),
  865. freeswitch-mod-java-dbg (= \${binary:Version}),
  866. freeswitch-mod-lua-dbg (= \${binary:Version}),
  867. freeswitch-mod-perl-dbg (= \${binary:Version}),
  868. freeswitch-mod-python-dbg (= \${binary:Version}),
  869. freeswitch-mod-yaml-dbg (= \${binary:Version}),
  870. freeswitch-mod-console-dbg (= \${binary:Version}),
  871. freeswitch-mod-logfile-dbg (= \${binary:Version}),
  872. freeswitch-mod-syslog-dbg (= \${binary:Version}),
  873. freeswitch-mod-posix-timer-dbg (= \${binary:Version}),
  874. freeswitch-mod-timerfd-dbg (= \${binary:Version}),
  875. freeswitch-mod-xml-cdr-dbg (= \${binary:Version}),
  876. freeswitch-mod-xml-curl-dbg (= \${binary:Version}),
  877. freeswitch-mod-xml-rpc-dbg (= \${binary:Version}),
  878. freeswitch-mod-xml-scgi-dbg (= \${binary:Version}),
  879. Recommends:
  880. Suggests:
  881. freeswitch-mod-vmd-dbg (= \${binary:Version}),
  882. freeswitch-mod-vlc-dbg (= \${binary:Version}),
  883. Description: Cross-Platform Scalable Multi-Protocol Soft Switch
  884. $(debian_wrap "${fs_description}")
  885. .
  886. This is a metapackage which recommends or suggests all packaged
  887. FreeSWITCH modules.
  888. Package: freeswitch-all-dbg
  889. Section: debug
  890. Priority: extra
  891. Architecture: any
  892. Depends: \${misc:Depends}, freeswitch-meta-all (= \${binary:Version}), freeswitch-meta-all-dbg (= \${binary:Version})
  893. Description: debugging symbols for FreeSWITCH
  894. $(debian_wrap "${fs_description}")
  895. .
  896. This package contains debugging symbols for FreeSWITCH.
  897. Package: freeswitch-dbg
  898. Section: debug
  899. Priority: extra
  900. Architecture: any
  901. Depends: \${misc:Depends}, freeswitch (= \${binary:Version})
  902. Description: debugging symbols for FreeSWITCH
  903. $(debian_wrap "${fs_description}")
  904. .
  905. This package contains debugging symbols for FreeSWITCH.
  906. Package: libfreeswitch1-dbg
  907. Section: debug
  908. Priority: extra
  909. Architecture: any
  910. Depends: \${misc:Depends}, libfreeswitch1 (= \${binary:Version})
  911. Description: debugging symbols for FreeSWITCH
  912. $(debian_wrap "${fs_description}")
  913. .
  914. This package contains debugging symbols for libfreeswitch1.
  915. Package: libfreeswitch-dev
  916. Section: libdevel
  917. Architecture: any
  918. Depends: \${misc:Depends}, freeswitch
  919. Description: development libraries and header files for FreeSWITCH
  920. $(debian_wrap "${fs_description}")
  921. .
  922. This package contains include files for FreeSWITCH.
  923. Package: freeswitch-doc
  924. Section: doc
  925. Architecture: all
  926. Depends: \${misc:Depends}
  927. Description: documentation for FreeSWITCH
  928. $(debian_wrap "${fs_description}")
  929. .
  930. This package contains Doxygen-produced documentation for FreeSWITCH.
  931. It may be an empty package at the moment.
  932. ## misc
  933. ## languages
  934. Package: freeswitch-lang
  935. Architecture: all
  936. Depends: \${misc:Depends},
  937. freeswitch-lang-en (= \${binary:Version})
  938. Description: Language files for FreeSWITCH
  939. $(debian_wrap "${fs_description}")
  940. .
  941. This is a metapackage which depends on the default language packages
  942. for FreeSWITCH.
  943. ## timezones
  944. Package: freeswitch-timezones
  945. Architecture: all
  946. Depends: \${misc:Depends}
  947. Description: Timezone files for FreeSWITCH
  948. $(debian_wrap "${fs_description}")
  949. .
  950. $(debian_wrap "This package includes the timezone files for FreeSWITCH.")
  951. ## startup
  952. EOF
  953. if [ ${use_sysvinit} = "true" ]; then
  954. cat <<EOF
  955. Package: freeswitch-sysvinit
  956. Architecture: all
  957. Depends: \${misc:Depends}, lsb-base (>= 3.0-6), sysvinit | sysvinit-utils
  958. Conflicts: freeswitch-init
  959. Provides: freeswitch-init
  960. Description: FreeSWITCH SysV init script
  961. $(debian_wrap "${fs_description}")
  962. .
  963. This package contains the SysV init script for FreeSWITCH.
  964. EOF
  965. else
  966. cat <<EOF
  967. Package: freeswitch-systemd
  968. Architecture: all
  969. Depends: \${misc:Depends}, systemd
  970. Conflicts: freeswitch-init, freeswitch-all (<= 1.6.7)
  971. Provides: freeswitch-init
  972. Description: FreeSWITCH systemd configuration
  973. $(debian_wrap "${fs_description}")
  974. .
  975. This package contains the systemd configuration for FreeSWITCH.
  976. EOF
  977. fi
  978. }
  979. print_mod_control () {
  980. local m_section="${section:-comm}"
  981. cat <<EOF
  982. Package: freeswitch-${module_name//_/-}
  983. Section: ${m_section}
  984. Architecture: any
  985. $(debian_wrap "Depends: \${shlibs:Depends}, \${misc:Depends}, libfreeswitch1 (= \${binary:Version}), ${depends}")
  986. $(debian_wrap "Recommends: ${recommends}")
  987. $(debian_wrap "Suggests: freeswitch-${module_name//_/-}-dbg, ${suggests}")
  988. Conflicts: freeswitch-all (<= 1.6.7)
  989. Description: ${description} for FreeSWITCH
  990. $(debian_wrap "${fs_description}")
  991. .
  992. $(debian_wrap "This package contains ${module_name} for FreeSWITCH.")
  993. .
  994. $(debian_wrap "${long_description}")
  995. Package: freeswitch-${module_name//_/-}-dbg
  996. Section: debug
  997. Priority: extra
  998. Architecture: any
  999. Depends: \${misc:Depends},
  1000. freeswitch-${module_name//_/-} (= \${binary:Version})
  1001. Description: ${description} for FreeSWITCH (debug)
  1002. $(debian_wrap "${fs_description}")
  1003. .
  1004. $(debian_wrap "This package contains debugging symbols for ${module_name} for FreeSWITCH.")
  1005. .
  1006. $(debian_wrap "${long_description}")
  1007. EOF
  1008. }
  1009. print_mod_install () {
  1010. cat <<EOF
  1011. /usr/lib/freeswitch/mod/${1}.so
  1012. EOF
  1013. }
  1014. print_long_filename_override () {
  1015. local p="$1"
  1016. cat <<EOF
  1017. # The long file names are caused by appending the nightly information.
  1018. # Since one of these packages will never end up on a Debian CD, the
  1019. # related problems with long file names will never come up here.
  1020. ${p}: package-has-long-file-name *
  1021. EOF
  1022. }
  1023. print_gpl_openssl_override () {
  1024. local p="$1"
  1025. cat <<EOF
  1026. # We're definitely not doing this. Nothing in FreeSWITCH has a more
  1027. # restrictive license than LGPL or MPL.
  1028. ${p}: possible-gpl-code-linked-with-openssl
  1029. EOF
  1030. }
  1031. print_itp_override () {
  1032. local p="$1"
  1033. cat <<EOF
  1034. # We're not in Debian (yet) so we don't have an ITP bug to close.
  1035. ${p}: new-package-should-close-itp-bug
  1036. EOF
  1037. }
  1038. print_common_overrides () {
  1039. print_long_filename_override "$1"
  1040. }
  1041. print_mod_overrides () {
  1042. print_common_overrides "$1"
  1043. print_gpl_openssl_override "$1"
  1044. }
  1045. print_conf_overrides () {
  1046. print_common_overrides "$1"
  1047. }
  1048. print_conf_control () {
  1049. cat <<EOF
  1050. Package: freeswitch-conf-${conf//_/-}
  1051. Architecture: all
  1052. Depends: \${misc:Depends}
  1053. Conflicts: freeswitch-all (<= 1.6.7)
  1054. Description: FreeSWITCH ${conf} configuration
  1055. $(debian_wrap "${fs_description}")
  1056. .
  1057. $(debian_wrap "This package contains the ${conf} configuration for FreeSWITCH.")
  1058. EOF
  1059. }
  1060. print_conf_install () {
  1061. cat <<EOF
  1062. conf/${conf} /usr/share/freeswitch/conf
  1063. EOF
  1064. }
  1065. print_lang_overrides () {
  1066. print_common_overrides "$1"
  1067. }
  1068. print_lang_control () {
  1069. local lang_name="$(echo ${lang} | tr '[:lower:]' '[:upper:]')"
  1070. case "${lang}" in
  1071. de) lang_name="German" ;;
  1072. en) lang_name="English" ;;
  1073. es) lang_name="Spanish" ;;
  1074. fr) lang_name="French" ;;
  1075. he) lang_name="Hebrew" ;;
  1076. pt) lang_name="Portuguese" ;;
  1077. ru) lang_name="Russian" ;;
  1078. esac
  1079. cat <<EOF
  1080. Package: freeswitch-lang-${lang//_/-}
  1081. Architecture: all
  1082. Depends: \${misc:Depends}
  1083. Recommends: freeswitch-sounds-${lang}
  1084. Conflicts: freeswitch-all (<= 1.6.7)
  1085. Description: ${lang_name} language files for FreeSWITCH
  1086. $(debian_wrap "${fs_description}")
  1087. .
  1088. $(debian_wrap "This package includes the ${lang_name} language files for FreeSWITCH.")
  1089. EOF
  1090. }
  1091. print_lang_install () {
  1092. cat <<EOF
  1093. conf/vanilla/lang/${lang} /usr/share/freeswitch/lang
  1094. EOF
  1095. }
  1096. print_edit_warning () {
  1097. echo "#### Do not edit! This file is auto-generated from debian/bootstrap.sh."; echo
  1098. }
  1099. gencontrol_per_mod () {
  1100. print_mod_control "$module_name" "$description" "$long_description" >> control
  1101. }
  1102. gencontrol_per_cat () {
  1103. (echo "## mod/$category"; echo) >> control
  1104. }
  1105. geninstall_per_mod () {
  1106. local f=freeswitch-${module_name//_/-}.install
  1107. (print_edit_warning; print_mod_install "$module_name") > $f
  1108. test -f $f.tmpl && cat $f.tmpl >> $f
  1109. }
  1110. genoverrides_per_mod () {
  1111. local f=freeswitch-${module_name//_/-}.lintian-overrides
  1112. (print_edit_warning; print_mod_overrides freeswitch-${module_name//_/-}) > $f
  1113. test -f $f.tmpl && cat $f.tmpl >> $f
  1114. }
  1115. genmodulesconf () {
  1116. genmodules_per_cat () { echo "## $category"; }
  1117. genmodules_per_mod () { echo "$module"; }
  1118. print_edit_warning
  1119. map_modules 'mod_filter' 'genmodules_per_cat' 'genmodules_per_mod'
  1120. }
  1121. genconf () {
  1122. print_conf_control >> control
  1123. local p=freeswitch-conf-${conf//_/-}
  1124. local f=$p.install
  1125. (print_edit_warning; print_conf_install) > $f
  1126. test -f $f.tmpl && cat $f.tmpl >> $f
  1127. local f=$p.lintian-overrides
  1128. (print_edit_warning; print_conf_overrides "$p") > $f
  1129. test -f $f.tmpl && cat $f.tmpl >> $f
  1130. }
  1131. genlang () {
  1132. print_lang_control >> control
  1133. local p=freeswitch-lang-${lang//_/-}
  1134. local f=$p.install
  1135. (print_edit_warning; print_lang_install) > $f
  1136. test -f $f.tmpl && cat $f.tmpl >> $f
  1137. local f=$p.lintian-overrides
  1138. (print_edit_warning; print_lang_overrides "$p") > $f
  1139. test -f $f.tmpl && cat $f.tmpl >> $f
  1140. }
  1141. geninstall_perl () {
  1142. local archlib
  1143. eval `perl -V:archlib`
  1144. echo $archlib/ESL.\* >libesl-perl.install
  1145. echo $archlib/ESL/\*.\* >>libesl-perl.install
  1146. }
  1147. accumulate_mod_deps () {
  1148. local x=""
  1149. # build-depends
  1150. if [ -n "$(eval echo \$build_depends_$codename)" ]; then
  1151. x="$(eval echo \$build_depends_$codename)"
  1152. else x="${build_depends}"; fi
  1153. if [ -n "$x" ]; then
  1154. if [ ! "$mod_build_depends" = "." ]; then
  1155. mod_build_depends="${mod_build_depends}, ${x}"
  1156. else mod_build_depends="${x}"; fi; fi
  1157. # depends
  1158. if [ -n "$(eval echo \$depends_$codename)" ]; then
  1159. x="$(eval echo \$depends_$codename)"
  1160. else x="${depends}"; fi
  1161. x="$(echo "$x" | sed 's/, \?/\n/g' | grep -v '^freeswitch' | tr '\n' ',' | sed -e 's/,$//' -e 's/,/, /g')"
  1162. if [ -n "$x" ]; then
  1163. if [ ! "$mod_depends" = "." ]; then
  1164. mod_depends="${mod_depends}, ${x}"
  1165. else mod_depends="${x}"; fi; fi
  1166. # recommends
  1167. if [ -n "$(eval echo \$recommends_$codename)" ]; then
  1168. x="$(eval echo \$recommends_$codename)"
  1169. else x="${recommends}"; fi
  1170. x="$(echo "$x" | sed 's/, \?/\n/g' | grep -v '^freeswitch' | tr '\n' ',' | sed -e 's/,$//' -e 's/,/, /g')"
  1171. if [ -n "$x" ]; then
  1172. if [ ! "$mod_recommends" = "." ]; then
  1173. mod_recommends="${mod_recommends}, ${x}"
  1174. else mod_recommends="${x}"; fi; fi
  1175. # suggests
  1176. if [ -n "$(eval echo \$suggests_$codename)" ]; then
  1177. x="$(eval echo \$suggests_$codename)"
  1178. else x="${suggests}"; fi
  1179. x="$(echo "$x" | sed 's/, \?/\n/g' | grep -v '^freeswitch' | tr '\n' ',' | sed -e 's/,$//' -e 's/,/, /g')"
  1180. if [ -n "$x" ]; then
  1181. if [ ! "$mod_suggests" = "." ]; then
  1182. mod_suggests="${mod_suggests}, ${x}"
  1183. else mod_suggests="${x}"; fi; fi
  1184. }
  1185. genmodctl_new_mod () {
  1186. grep -e "^Module: ${module}$" control-modules >/dev/null && return 0
  1187. cat <<EOF
  1188. Module: $module
  1189. Description: $description
  1190. $long_description
  1191. EOF
  1192. echo
  1193. }
  1194. genmodctl_new_cat () {
  1195. grep -e "^## mod/${category}$" control-modules >/dev/null && return 0
  1196. cat <<EOF
  1197. ## mod/$category
  1198. EOF
  1199. }
  1200. pre_parse_mod_control () {
  1201. local fl=true ll_nl=false ll_descr=false
  1202. while xread l; do
  1203. if [ -z "$l" ]; then
  1204. # is newline
  1205. if ! $ll_nl && ! $fl; then
  1206. echo
  1207. fi
  1208. ll_nl=true
  1209. continue
  1210. elif [ -z "${l##\#*}" ]; then
  1211. # is comment
  1212. continue
  1213. elif [ -z "${l## *}" ]; then
  1214. # is continuation line
  1215. if ! $ll_descr; then
  1216. echo -n "$l"
  1217. else
  1218. echo -n "Long-Description: $(echo "$l" | sed -e 's/^ *//')"
  1219. fi
  1220. else
  1221. # is header line
  1222. $fl || echo
  1223. if [ "${l%%:*}" = "Description" ]; then
  1224. ll_descr=true
  1225. echo "Description: ${l#*: }"
  1226. continue
  1227. else
  1228. echo -n "$l"
  1229. fi
  1230. fi
  1231. fl=false ll_nl=false ll_descr=false
  1232. done < control-modules
  1233. }
  1234. var_escape () {
  1235. (echo -n \'; echo -n "$1" | sed -e "s/'/'\\\\''/g"; echo -n \')
  1236. }
  1237. parse_mod_control () {
  1238. pre_parse_mod_control > control-modules.preparse
  1239. local category=""
  1240. local module_name=""
  1241. rm -rf $parse_dir
  1242. while xread l; do
  1243. if [ -z "$l" ]; then
  1244. # is newline
  1245. continue
  1246. fi
  1247. local header="${l%%:*}"
  1248. local value="${l#*: }"
  1249. if [ "$header" = "Module" ]; then
  1250. category="${value%%/*}"
  1251. module_name="${value#*/}"
  1252. mkdir -p $parse_dir/$category
  1253. (echo "module=$(var_escape "$value")"; \
  1254. echo "category=$(var_escape "$category")"; \
  1255. echo "module_name=$(var_escape "$module_name")"; \
  1256. ) >> $parse_dir/$category/$module_name
  1257. else
  1258. ([ -n "$category" ] && [ -n "$module_name" ]) \
  1259. || err "unexpected header $header"
  1260. local var_name="$(echo "$header" | sed -e 's/-/_/g' | tr '[A-Z]' '[a-z]')"
  1261. echo "${var_name}=$(var_escape "$value")" >> $parse_dir/$category/$module_name
  1262. fi
  1263. done < control-modules.preparse
  1264. }
  1265. debian_wrap () {
  1266. local fl=true
  1267. echo "$1" | fold -s -w 69 | while xread l; do
  1268. local v="$(echo "$l" | sed -e 's/ *$//g')"
  1269. if $fl; then
  1270. fl=false
  1271. echo "$v"
  1272. else
  1273. echo " $v"
  1274. fi
  1275. done
  1276. }
  1277. genmodctl_cat () {
  1278. (echo "## mod/$category"; echo)
  1279. }
  1280. genmodctl_mod () {
  1281. echo "Module: $module"
  1282. [ -n "$section" ] && echo "Section: $section"
  1283. echo "Description: $description"
  1284. echo "$long_description" | fold -s -w 69 | while xread l; do
  1285. local v="$(echo "$l" | sed -e 's/ *$//g')"
  1286. echo " $v"
  1287. done
  1288. [ -n "$build_depends" ] && debian_wrap "Build-Depends: $build_depends"
  1289. for x in $supported_distros; do
  1290. [ -n "$(eval echo \$build_depends_$x)" ] \
  1291. && debian_wrap "Build-Depends-$x: $(eval echo \$build_depends_$x)"
  1292. done
  1293. [ -n "$depends" ] && debian_wrap "Depends: $depends"
  1294. [ -n "$reccomends" ] && debian_wrap "Recommends: $recommends"
  1295. [ -n "$suggests" ] && debian_wrap "Suggests: $suggests"
  1296. [ -n "$distro_conflicts" ] && debian_wrap "Distro-Conflicts: $distro_conflicts"
  1297. echo
  1298. }
  1299. set_modules_non_dfsg () {
  1300. local len=${#avoid_mods}
  1301. for ((i=0; i<len; i++)); do
  1302. case "${avoid_mods[$i]}" in
  1303. codecs/mod_siren|codecs/mod_ilbc)
  1304. unset avoid_mods[$i]
  1305. ;;
  1306. esac
  1307. done
  1308. }
  1309. unavoid_modules () {
  1310. local len=${#avoid_mods}
  1311. for ((i=0; i<len; i++)); do
  1312. for x in $1; do
  1313. if test "${avoid_mods[$i]}" = "$x"; then
  1314. unset avoid_mods[$i]
  1315. fi
  1316. done
  1317. done
  1318. }
  1319. conf_merge () {
  1320. local of="$1" if="$2"
  1321. if [ -s $if ]; then
  1322. grep -v '^##\|^$' $if | while xread x; do
  1323. touch $of
  1324. if ! grep -e "$x" $of >/dev/null; then
  1325. printf '%s\n' "$x" >> $of
  1326. fi
  1327. done
  1328. fi
  1329. }
  1330. echo "Bootstrapping debian/ for ${codename}" >&2
  1331. echo >&2
  1332. echo "Please wait, this takes a few seconds..." >&2
  1333. test -z "$modulelist_opt" || set_modules_${modulelist_opt/-/_}
  1334. test -z "$modules_add" || unavoid_modules "$modules_add"
  1335. echo "Adding any new modules to control-modules..." >&2
  1336. parse_dir=control-modules.parse
  1337. map_fs_modules ':' 'genmodctl_new_cat' 'genmodctl_new_mod' >> control-modules
  1338. echo "Parsing control-modules..." >&2
  1339. parse_mod_control
  1340. echo "Displaying includes/excludes..." >&2
  1341. map_modules 'mod_filter_show' '' ''
  1342. echo "Generating modules_.conf..." >&2
  1343. genmodulesconf > modules_.conf
  1344. echo "Generating control-modules.gen as sanity check..." >&2
  1345. (echo "# -*- mode:debian-control -*-"; \
  1346. echo "##### Author: Travis Cross <tc@traviscross.com>"; echo; \
  1347. map_modules ':' 'genmodctl_cat' 'genmodctl_mod' \
  1348. ) > control-modules.gen
  1349. echo "Accumulating dependencies from modules..." >&2
  1350. map_modules 'mod_filter' '' 'accumulate_mod_deps'
  1351. echo "Generating debian/..." >&2
  1352. > control
  1353. (print_edit_warning; print_source_control; print_core_control) >> control
  1354. echo "Generating debian/ (conf)..." >&2
  1355. (echo "### conf"; echo) >> control
  1356. map_confs 'genconf'
  1357. echo "Generating debian/ (lang)..." >&2
  1358. (echo "### lang"; echo) >> control
  1359. map_langs 'genlang'
  1360. echo "Generating debian/ (modules)..." >&2
  1361. (echo "### modules"; echo) >> control
  1362. map_modules "mod_filter" \
  1363. "gencontrol_per_cat" \
  1364. "gencontrol_per_mod geninstall_per_mod genoverrides_per_mod"
  1365. geninstall_perl
  1366. if [ ${use_sysvinit} = "true" ]; then
  1367. echo -n freeswitch-sysvinit >freeswitch-init.provided_by
  1368. else
  1369. echo -n freeswitch-systemd >freeswitch-init.provided_by
  1370. fi
  1371. echo "Generating additional lintian overrides..." >&2
  1372. grep -e '^Package:' control | while xread l; do
  1373. m="${l#*: }"
  1374. f=$m.lintian-overrides
  1375. [ -s $f ] || print_edit_warning >> $f
  1376. if ! grep -e 'package-has-long-file-name' $f >/dev/null; then
  1377. print_long_filename_override "$m" >> $f
  1378. fi
  1379. if ! grep -e 'new-package-should-close-itp-bug' $f >/dev/null; then
  1380. print_itp_override "$m" >> $f
  1381. fi
  1382. done
  1383. for p in freeswitch libfreeswitch1; do
  1384. f=$p.lintian-overrides
  1385. [ -s $f ] || print_edit_warning >> $f
  1386. print_gpl_openssl_override "$p" >> $f
  1387. done
  1388. echo "Cleaning up..." >&2
  1389. rm -f control-modules.preparse
  1390. rm -rf control-modules.parse
  1391. diff control-modules control-modules.gen >/dev/null && rm -f control-modules.gen
  1392. echo "Done bootstrapping debian/" >&2
  1393. touch .stamp-bootstrap