浏览代码

Create source-release.sh

FusionPBX 1 年之前
父节点
当前提交
b7538125e2
共有 1 个文件被更改,包括 129 次插入0 次删除
  1. 129 0
      centos/resources/switch/source-release.sh

+ 129 - 0
centos/resources/switch/source-release.sh

@@ -0,0 +1,129 @@
+#!/bin/sh
+
+#move to script directory so all relative paths work
+cd "$(dirname "$0")"
+
+#includes
+. ../config.sh
+. ../colors.sh
+
+#upgrade packages
+apt update && apt upgrade -y
+
+yum -y install memcached curl gdb
+
+#install build dependencies
+yum install -y autoconf automake libtool gcc-c++ ncurses-devel zlib-devel libjpeg-devel openssl-devel libcurl-devel pcre-devel lua-devel libedit-devel libuuid-devel speex-devel libogg-devel libvorbis-devel curl-devel ldns-devel libsndfile-devel libtheora-devel
+
+#install additional depdendencies
+yum install -y libjpeg-devel sqlite-devel libpng-devel libtiff-devel libX11-devel e2fsprogs-devel openldap-devel libyuv-devel
+yum install -y sox sqlite3 unzip
+
+#we are about to move out of the executing directory so we need to preserve it to return after we are done
+CWD=$(pwd)
+
+#install the following dependencies if the switch version is greater than 1.10.0
+if [ $(echo "$switch_version" | tr -d '.') -gt 1100 ]; then
+
+	# libks build-requirements
+	apt install -y cmake uuid-dev
+
+	# libks
+	cd /usr/src
+	git clone https://github.com/signalwire/libks.git libks
+	cd libks
+	cmake .
+	make -j $(getconf _NPROCESSORS_ONLN)
+	make install
+
+	# libks C includes
+	export C_INCLUDE_PATH=/usr/include/libks
+
+	# sofia-sip
+	cd /usr/src
+	#git clone https://github.com/freeswitch/sofia-sip.git sofia-sip
+	wget https://github.com/freeswitch/sofia-sip/archive/refs/tags/v$sofia_version.zip
+	unzip v$sofia_version.zip
+	cd sofia-sip-$sofia_version
+	sh autogen.sh
+	./configure --enable-debug
+	make -j $(getconf _NPROCESSORS_ONLN)
+	make install
+
+	# spandsp
+	cd /usr/src
+	git clone https://github.com/freeswitch/spandsp.git spandsp
+	cd spandsp
+ 	git reset --hard 0d2e6ac65e0e8f53d652665a743015a88bf048d4
+ 	#/usr/bin/sed -i 's/AC_PREREQ(\[2\.71\])/AC_PREREQ([2.69])/g' /usr/src/spandsp/configure.ac
+	sh autogen.sh
+	./configure --enable-debug
+	make -j $(getconf _NPROCESSORS_ONLN)
+	make install
+	ldconfig
+fi
+
+cd /usr/src
+
+#check for master
+if [ $switch_branch = "master" ]; then
+	#master branch
+	echo "Using version master"
+	rm -r /usr/src/freeswitch
+	git clone https://github.com/signalwire/freeswitch.git
+	cd /usr/src/freeswitch
+	./bootstrap.sh -j
+fi
+
+#check for stable release
+if [ $switch_branch = "stable" ]; then
+	echo "Using version $switch_version"
+	#1.8 and older
+	if [ $(echo "$switch_version" | tr -d '.') -lt 1100 ]; then
+		wget http://files.freeswitch.org/freeswitch-releases/freeswitch-$switch_version.zip
+		unzip freeswitch-$switch_version.zip
+		cd /usr/src/freeswitch-$switch_version
+	fi
+
+	#1.10.0 and newer
+	if [ $(echo "$switch_version" | tr -d '.') -gt 1100 ]; then
+		wget http://files.freeswitch.org/freeswitch-releases/freeswitch-$switch_version.-release.zip
+		unzip freeswitch-$switch_version.-release.zip
+		mv freeswitch-$switch_version.-release freeswitch-$switch_version
+		cd /usr/src/freeswitch-$switch_version
+		#apply patch
+		#patch -u /usr/src/freeswitch/src/mod/databases/mod_pgsql/mod_pgsql.c -i /usr/src/fusionpbx-install.sh/debian/resources/switch/source/mod_pgsql.patch
+	fi
+fi
+
+# enable required modules
+#sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_avmd:applications/mod_avmd:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_av:formats/mod_av:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_callcenter:applications/mod_callcenter:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_cidlookup:applications/mod_cidlookup:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_memcache:applications/mod_memcache:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_nibblebill:applications/mod_nibblebill:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_curl:applications/mod_curl:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#applications/mod_translate:applications/mod_translate:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#formats/mod_shout:formats/mod_shout:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#formats/mod_pgsql:formats/mod_pgsql:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#say/mod_say_es:say/mod_say_es:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'#say/mod_say_fr:say/mod_say_fr:'
+
+#disable module or install dependency libks to compile signalwire
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'applications/mod_signalwire:#applications/mod_signalwire:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'endpoints/mod_skinny:#endpoints/mod_skinny:'
+sed -i /usr/src/freeswitch-$switch_version/modules.conf -e s:'endpoints/mod_verto:#endpoints/mod_verto:'
+
+# prepare the build
+#./configure --prefix=/usr/local/freeswitch --enable-core-pgsql-support --disable-fhs
+./configure -C --enable-portable-binary --disable-dependency-tracking --enable-debug \
+--prefix=/usr --localstatedir=/var --sysconfdir=/etc \
+--with-openssl --enable-core-pgsql-support
+
+# compile and install
+make -j $(getconf _NPROCESSORS_ONLN)
+make install
+
+#return to the executing directory
+cd $CWD