From: Sebastian Kemper Date: Sun, 9 Jul 2017 10:50:50 +0000 (+0200) Subject: freeswitch-stable: Fixes for modules and libs X-Git-Url: http://git.openwrt.org/?p=feed%2Ftelephony.git;a=commitdiff_plain;h=4cfbc9c93303c1efb877510d1536f66981768f52 freeswitch-stable: Fixes for modules and libs - Add missed dependency on libyuv to libvpx. - Get rid of gratuitous @ in Config.in. - Clean up Perl and Python deps. - Fix installation paths for the ESL packages. - Don't set ac_cv_lib_perl_perl_alloc=yes, it's not needed. - Get rid of the build dep on erlang. Have the modules (erlang_event and kazoo) depend on erlang instead; they both require epmd at runtime. - Force spandsp and pocketsphinx to use fixed point math when soft float support is enabled for the target device. - Make libvpx use OpenWrt/LEDE flags, otherwhise it comes up with optimized flags on its own. Signed-off-by: Sebastian Kemper --- diff --git a/net/freeswitch-stable/Config.in b/net/freeswitch-stable/Config.in index c11712b..991c698 100644 --- a/net/freeswitch-stable/Config.in +++ b/net/freeswitch-stable/Config.in @@ -56,13 +56,14 @@ config FS_STABLE_WITH_SRTP config FS_STABLE_WITH_VPX bool "Compile with VPx support" + depends on FS_STABLE_WITH_LIBYUV default n help Compile with VPx video codec support config FS_STABLE_WITH_ZRTP bool "Compile with ZRTP support" - depends on @aarch64||aarch64_be||arm||armeb||i386||mips||mips64||mips64el||mipsel||powerpc||powerpc64||powerpcle||sparc||x86_64 + depends on aarch64||aarch64_be||arm||armeb||i386||mips||mips64||mips64el||mipsel||powerpc||powerpc64||powerpcle||sparc||x86_64 default n help Compile with ZRTP support. diff --git a/net/freeswitch-stable/Makefile b/net/freeswitch-stable/Makefile index bae18ca..084a180 100644 --- a/net/freeswitch-stable/Makefile +++ b/net/freeswitch-stable/Makefile @@ -21,8 +21,9 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PRG_NAME)-$(PKG_VERSION) # configure fails without libjpeg, but it's only needed for mod_spandsp PKG_BUILD_DEPENDS:= \ - erlang \ - libjpeg + libjpeg \ + perl/host \ + python/host # With mod_ssml and mod_rayo enabled the parallel compiles always failed #PKG_BUILD_PARALLEL:=1 @@ -207,9 +208,10 @@ FS_STABLE_MOD_AVAILABLE:= \ include $(INCLUDE_DIR)/package.mk FS_STABLE_PERL_FEED:=$(TOPDIR)/feeds/packages/lang/perl +FS_STABLE_PYTHON_FEED:=$(TOPDIR)/feeds/packages/lang/python include $(FS_STABLE_PERL_FEED)/perlmod.mk -$(call include_mk, python-version.mk) +include $(FS_STABLE_PYTHON_FEED)/files/python-host.mk FS_STABLE_PERL_LIBS:=$(shell grep "^libs=" \ $(FS_STABLE_PERL_FEED)/files/base.config | \ @@ -377,7 +379,11 @@ endef define Package/$(PKG_NAME)-misc-perl-esl $(call Package/$(PKG_NAME)/Default) TITLE:=Perl ESL - DEPENDS:=$(PKG_NAME) @PERL_THREADS PACKAGE_$(PKG_NAME)-misc-perl-esl:perl + DEPENDS:=$(PKG_NAME) \ + +PACKAGE_$(PKG_NAME)-misc-perl-esl:perlbase-autoloader \ + +PACKAGE_$(PKG_NAME)-misc-perl-esl:perlbase-data \ + +PACKAGE_$(PKG_NAME)-misc-perl-esl:perlbase-dynaloader \ + @PERL_THREADS endef define Package/$(PKG_NAME)-misc-perl-esl/description @@ -387,9 +393,10 @@ endef define Package/$(PKG_NAME)-misc-perl-esl/install $(INSTALL_DIR) $(1)$(PERL_SITELIB)/ESL + $(INSTALL_DIR) $(1)$(PERL_SITELIB)/auto/ESL $(INSTALL_BIN) \ $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL.so \ - $(1)$(PERL_SITELIB) + $(1)$(PERL_SITELIB)/auto/ESL $(INSTALL_DATA) \ $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL.pm \ $(1)$(PERL_SITELIB) @@ -511,10 +518,10 @@ ifeq ($(CONFIG_FS_STABLE_WITH_MODCONF),y) $(call Package/$(PKG_NAME)/install/dir,$$(1)$(FS_STABLE_EXAMPLES_DIR)/mod_$(1),$(PKG_BUILD_DIR)/src/mod/*/mod_$(1)/conf) endif ifeq ($(1),perl) - $(INSTALL_DIR) $$(1)$(PERL_SITELIB)/auto + $(INSTALL_DIR) $$(1)$(PERL_SITELIB)/auto/$(PRG_NAME) $(INSTALL_BIN) \ $(PKG_INSTALL_DIR)$(FS_STABLE_PREFIX_DIR)/perl/$(PRG_NAME).so \ - $$(1)$(PERL_SITELIB)/auto + $$(1)$(PERL_SITELIB)/auto/$(PRG_NAME) $(INSTALL_DATA) \ $(PKG_INSTALL_DIR)$(FS_STABLE_PREFIX_DIR)/perl/$(PRG_NAME).pm \ $$(1)$(PERL_SITELIB) @@ -618,11 +625,18 @@ CONFIGURE_ARGS+= \ --with-python=no endif -ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang_event),) +ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang_event)$(CONFIG_PACKAGE_$(PKG_NAME)-mod-kazoo),) CONFIGURE_ARGS+= \ --with-erlang=no endif +# Make mod_spandsp use fixed point math when soft float support is +# enabled on target devices. +ifeq ($(CONFIG_SOFT_FLOAT),y) +CONFIGURE_ARGS+= \ + --enable-fixed-point +endif + # Don't want host-php CONFIGURE_VARS+= \ ac_cv_have_php=no \ @@ -632,6 +646,7 @@ CONFIGURE_VARS+= \ # The autoconf variables in this block are OK for both musl and glibc CONFIGURE_VARS+= \ + ac_cv_dev_urandom=yes \ ac_cv_file__dev_ptmx=yes \ ac_cv_file__dev_urandom=yes \ ac_cv_file_dbd_apr_dbd_mysql_c=no \ @@ -668,8 +683,6 @@ CONFIGURE_VARS+= \ endif ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-misc-perl-esl)$(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),) -CONFIGURE_VARS+= \ - ac_cv_lib_perl_perl_alloc=yes CONFIGURE_VARS+= \ PERL="$(PERL_CMD)" \ PERL_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -I$(STAGING_DIR)$(PERL_SITELIB)/CORE" \ @@ -693,6 +706,13 @@ CONFIGURE_VARS+= \ PYTHON_SITE_DIR="$(FS_STABLE_PYTHON_SITE_DIR)" endif +# Make sphinxbase use fixed point math when soft float support is +# enabled on target devices. +ifeq ($(CONFIG_SOFT_FLOAT),y) +MAKE_VARS+= \ + FS_STABLE_USE_FIXED_POINT="--enable-fixed" +endif + # Some common URLs FS_STABLE_LIBS_URL:=https://files.$(PRG_NAME).org/downloads/libs FS_STABLE_SPHINX_URL:=@SF/cmusphinx @@ -899,7 +919,7 @@ $(eval $(call Package/$(PKG_NAME)/Module,distributor,Load distributor,This modul $(eval $(call Package/$(PKG_NAME)/Module,dptools,Dialplan tools,This module implements basic dialplan tools.,)) $(eval $(call Package/$(PKG_NAME)/Module,easyroute,DID routing,This module does destination lookup based on DID.,)) $(eval $(call Package/$(PKG_NAME)/Module,enum,ENUM routing,This module implements ENUM support.,+libldns)) -$(eval $(call Package/$(PKG_NAME)/Module,erlang_event,Erlang event,Erlang event module.,)) +$(eval $(call Package/$(PKG_NAME)/Module,erlang_event,Erlang event,Erlang event module.,+erlang)) $(eval $(call Package/$(PKG_NAME)/Module,esf,Multicast,This module adds multi-cast support.,)) $(eval $(call Package/$(PKG_NAME)/Module,esl,Single ESL,This module adds an API for generating one-off ESL requests.,)) $(eval $(call Package/$(PKG_NAME)/Module,event_multicast,Multicast Event,Multicast Event System for FreeSWITCH.,)) @@ -921,7 +941,7 @@ $(eval $(call Package/$(PKG_NAME)/Module,httapi,HT-TAPI,This module provides an $(eval $(call Package/$(PKG_NAME)/Module,http_cache,HTTP GET with caching,This module provides an API for making HTTP GET requests where the\nresult is cached.,)) $(eval $(call Package/$(PKG_NAME)/Module,isac,iSAC,iSAC codec support.,@arm||i386||mips||mips64||mips64el||mipsel||x86_64)) $(eval $(call Package/$(PKG_NAME)/Module,json_cdr,JSON CDR,JSON-based Call Detail Record handler.,)) -$(eval $(call Package/$(PKG_NAME)/Module,kazoo,Kazoo,Kazoo module for FreeSWITCH.,)) +$(eval $(call Package/$(PKG_NAME)/Module,kazoo,Kazoo,Kazoo module for FreeSWITCH.,+erlang)) $(eval $(call Package/$(PKG_NAME)/Module,lcr,LCR,This module adds a facility for least-cost routing.,)) $(eval $(call Package/$(PKG_NAME)/Module,ldap,LDAP,LDAP module for FreeSWITCH.,+libopenldap)) $(eval $(call Package/$(PKG_NAME)/Module,local_stream,Local stream,Connects multiple channels to a looped stream.,)) @@ -934,7 +954,7 @@ $(eval $(call Package/$(PKG_NAME)/Module,nibblebill,Nibblebill,This module allow $(eval $(call Package/$(PKG_NAME)/Module,odbc_cdr,ODBC CDR,ODBC Call Detail Record handler.,)) $(eval $(call Package/$(PKG_NAME)/Module,opus,Opus,Opus codec support.,+libopus)) $(eval $(call Package/$(PKG_NAME)/Module,oreka,Oreka,This module provides media recording with the Oreka cross-platform\naudio stream recording and retrieval system.,)) -$(eval $(call Package/$(PKG_NAME)/Module,perl,Perl,This package contains mod_perl for FreeSWITCH.,@PERL_THREADS PACKAGE_$(PKG_NAME)-mod-perl:perl +libdb47 +libgdbm)) +$(eval $(call Package/$(PKG_NAME)/Module,perl,Perl,This package contains mod_perl for FreeSWITCH.,+libdb47 +libgdbm +perlbase-essential @PERL_THREADS)) $(eval $(call Package/$(PKG_NAME)/Module,png,PNG,Allows playback of video using PNG files.,)) $(eval $(call Package/$(PKG_NAME)/Module,pocketsphinx,Pocketsphinx,This module allows speech recognition. You might want to install\n$(PKG_NAME)-misc-grammar as well.,+libsamplerate)) # When libsamplerate is found it'll be linked against, there is no switch to turn it off $(eval $(call Package/$(PKG_NAME)/Module,posix_timer,POSIX timer,Add POSIX timer support.,)) diff --git a/net/freeswitch-stable/patches/190-mod_pocketsphinx.patch b/net/freeswitch-stable/patches/190-mod_pocketsphinx.patch index dd31403..a1ed41e 100644 --- a/net/freeswitch-stable/patches/190-mod_pocketsphinx.patch +++ b/net/freeswitch-stable/patches/190-mod_pocketsphinx.patch @@ -5,7 +5,7 @@ $(SPHINXBASE_BUILDDIR)/Makefile: $(SPHINXBASE_DIR) mkdir -p $(SPHINXBASE_BUILDDIR) - (cd $(SPHINXBASE_BUILDDIR) && $(DEFAULT_VARS) $(SPHINXBASE_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(SPHINXBASE_DIR) --without-python CFLAGS=) -+ (cd $(SPHINXBASE_BUILDDIR) && sed -i 's|$$(srcdir)/||g' test/regression/Makefile.am && autoreconf -v -f -i -s && $(DEFAULT_VARS) CPPFLAGS="" $(SPHINXBASE_DIR)/configure ac_cv_header_alsa_asoundlib_h=no ac_cv_header_jack_jack_h=no ac_cv_header_pulse_pulseaudio_h=no $(DEFAULT_ARGS) --srcdir=$(SPHINXBASE_DIR) --without-python) ++ (cd $(SPHINXBASE_BUILDDIR) && sed -i 's|$$(srcdir)/||g' test/regression/Makefile.am && autoreconf -v -f -i -s && $(DEFAULT_VARS) CPPFLAGS="" ac_cv_header_alsa_asoundlib_h=no ac_cv_header_jack_jack_h=no ac_cv_header_pulse_pulseaudio_h=no $(SPHINXBASE_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(SPHINXBASE_DIR) --without-python $(FS_STABLE_USE_FIXED_POINT)) $(TOUCH_TARGET) $(SPHINXBASE_BUILDDIR)/buildstamp: $(SPHINXBASE_BUILDDIR)/Makefile diff --git a/net/freeswitch-stable/patches/250-libvpx-use-openwrt-flags.patch b/net/freeswitch-stable/patches/250-libvpx-use-openwrt-flags.patch new file mode 100644 index 0000000..636180280 --- /dev/null +++ b/net/freeswitch-stable/patches/250-libvpx-use-openwrt-flags.patch @@ -0,0 +1,11 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -550,7 +550,7 @@ libs/libzrtp/libzrtp.a: + cd libs/libzrtp && $(MAKE) + + libs/libvpx/Makefile: +- cd libs/libvpx && CROSS="$(CROSS)" CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --target=generic-gnu --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="$(VISIBILITY_FLAG)" ++ cd libs/libvpx && CROSS="$(CROSS)" CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --target=generic-gnu --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="$(VISIBILITY_FLAG)" --disable-optimizations + + libs/libvpx/libvpx.a: libs/libvpx/Makefile + @cd libs/libvpx && $(MAKE)