Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH/next v9 01/28] package/freeswitch: new package
Date: Mon, 29 Feb 2016 22:21:27 +0100	[thread overview]
Message-ID: <20160229222127.27db4013@free-electrons.com> (raw)
In-Reply-To: <1456586838-21197-2-git-send-email-bernd.kuhls@t-online.de>

Dear Bernd Kuhls,

On Sat, 27 Feb 2016 16:26:51 +0100, Bernd Kuhls wrote:
> This commit adds freeswitch without any configured modules and with a
> minimal set of non-optional dependencies. All other dependencies and
> modules will be added by further patches in this series.
> 
> PLease note that freeswitch source repo bundles some libraries which are
> also available as buildroot packages. The freeswitch build system does
> not allow to use system libraries in these cases:
> 
> apr, apr-util, libsrtp, sofia-sip, tiff
> 
> The reason are patches to these packages by the freeswitch project which
> are not yet upstream. There is an open JIRA report for this situation:
> https://freeswitch.org/jira/si/jira.issueviews:issue-html/FS-353/FS-353.html

The number of libs they bundle is quite unfortunate. But well, there's
no much you can about this besides following this bug report.

> 
> More historic infos can be found here:
> http://article.gmane.org/gmane.comp.telephony.freeswitch.devel/2715
> https://freeswitch.org/the-missing-link/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

This patch unfortunately does not build here. With the following
defconfig:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2015.11-rc1-71-g90d1299.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_FREESWITCH=y
# BR2_TARGET_ROOTFS_TAR is not set

I get:

  CCLD     fs_ivrd
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemWipe':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:69: undefined reference to `zrtp_memset'
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemAlloc':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:78: undefined reference to `zrtp_sys_alloc'
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemFree':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:87: undefined reference to `zrtp_sys_free'
collect2: error: ld returned 1 exit status
Makefile:1462: recipe for target 'fs_cli' failed
make[4]: *** [fs_cli] Error 1
make[4]: *** Waiting for unfinished jobs....
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemWipe':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:69: undefined reference to `zrtp_memset'
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemAlloc':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:78: undefined reference to `zrtp_sys_alloc'
libs/libzrtp/third_party/bnlib/libbn.a(lbnmem.o): In function `lbnMemFree':
/home/thomas/projets/buildroot/output/build/freeswitch-1.6.6/libs/libzrtp/third_party/bnlib/lbnmem.c:87: undefined reference to `zrtp_sys_free'
collect2: error: ld returned 1 exit status
Makefile:1470: recipe for target 'fs_ivrd' failed
make[4]: *** [fs_ivrd] Error 1

*** Warning: Linking the shared library libfreeswitch.la against the
*** static library libs/libzrtp/libzrtp.a is not portable!


> diff --git a/package/freeswitch/0001-jpeg.patch b/package/freeswitch/0001-jpeg.patch
> new file mode 100644
> index 0000000..8fc3052
> --- /dev/null
> +++ b/package/freeswitch/0001-jpeg.patch
> @@ -0,0 +1,31 @@
> +Fix jpeg detection
> +
> +libyuv has an optional jpeg dependency, freeswitch configure misses -ljpeg
> +when searching for libyuv and therefore assumes libyuv is missing. When
> +freeswitch first searches for libjpeg, -ljpeg will be added to
> +PKG_CHECK_MODULES([YUV].
> +
> +Patch sent upstream: https://freeswitch.org/jira/browse/FS-8745

Can you follow-up on this bug report by doing a pull request, as they
suggested?

> diff --git a/package/freeswitch/0002-zrtp.patch b/package/freeswitch/0002-zrtp.patch
> new file mode 100644
> index 0000000..c1cdeed
> --- /dev/null
> +++ b/package/freeswitch/0002-zrtp.patch
> @@ -0,0 +1,33 @@
> +Fix PowerPC detection (needs __linux__) and add aarch64 support.
> +
> +Patch sent upstream: https://freeswitch.org/jira/browse/FS-8746

Ditto.

(Note that I find it weird to fix a bug and add support for a new
architecture in the same patch. Two separate patches would have
definitely been better here.)

> diff --git a/package/freeswitch/0003-FS-8736-resolve-Missing-MEMMOVE-macro-in-spandsp-aut.patch b/package/freeswitch/0003-FS-8736-resolve-Missing-MEMMOVE-macro-in-spandsp-aut.patch
> new file mode 100644
> index 0000000..88cb390
> --- /dev/null
> +++ b/package/freeswitch/0003-FS-8736-resolve-Missing-MEMMOVE-macro-in-spandsp-aut.patch
> @@ -0,0 +1,71 @@
> +From 10df60039322b3903e62b001971c195d5ce48943 Mon Sep 17 00:00:00 2001
> +From: Anthony Minessale <anthm@freeswitch.org>
> +Date: Fri, 15 Jan 2016 13:14:07 -0600
> +Subject: [PATCH 05/99] FS-8736 #resolve [Missing MEMMOVE macro in spandsp
> + autoconf]

Not sure why there is a 05/99 here.

> diff --git a/package/freeswitch/freeswitch.mk b/package/freeswitch/freeswitch.mk
> new file mode 100644
> index 0000000..3c527fe
> --- /dev/null
> +++ b/package/freeswitch/freeswitch.mk
> @@ -0,0 +1,85 @@
> +################################################################################
> +#
> +# freeswitch
> +#
> +################################################################################
> +
> +FREESWITCH_VERSION = 1.6.6
> +FREESWITCH_SOURCE = freeswitch-$(FREESWITCH_VERSION).tar.xz
> +FREESWITCH_SITE = http://files.freeswitch.org/freeswitch-releases
> +FREESWITCH_LICENSE = MPL v1.1

This should be MPLv1.1

> +FREESWITCH_LICENSE_FILES = COPYING
> +
> +# required dependencies
> +FREESWITCH_DEPENDENCIES = \
> +	host-autoconf host-automake host-libtool host-pkgconf jpeg \
> +	libcurl openssl pcre speex sqlite zlib
> +
> +# remove an unneeded script which scans /usr/lib/freeswitch/mod
> +define FREESWITCH_REMOVE_MODCHECK
> +	$(SED) "/modcheck.sh/d" $(@D)/build/Makefile.am
> +endef
> +FREESWITCH_PRE_CONFIGURE_HOOKS += FREESWITCH_REMOVE_MODCHECK

Shouldn't this hook be rather handled by a patch ?

> +
> +# autoreconf now is necessary to avoid broken autoreconf after configure
> +# we also patch configure.ac twice

What do you mean by "patch configure.ac twice" ? Do you mean that there
are two patches touching it.

You should also explain in a comment why the normal
FREESWITCH_AUTORECONF = YES incantation doesn't work.

Other than that looks good. I would probably have applied if I didn't
encounter the build failure :-)

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2016-02-29 21:21 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-27 15:26 [Buildroot] [PATCH/next v9 00/28] package/freeswitch: new package Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 01/28] " Bernd Kuhls
2016-02-29 21:21   ` Thomas Petazzoni [this message]
2016-03-01  6:22     ` Bernd Kuhls
2016-03-01  9:18       ` Thomas Petazzoni
2016-03-01 21:02         ` Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 02/28] package/freeswitch: enable optional modules Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 03/28] package/freeswitch: add optional dependency to libuuid Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 04/28] package/freeswitch: add optional dependency to libedit Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 05/28] package/freeswitch: enable mod_enum, add optional dependency to libldns Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 06/28] package/freeswitch: add optional dependency to libpng Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 07/28] package/freeswitch: add optional dependency to unixodbc Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 08/28] package/freeswitch: add optional dependency to freetype Bernd Kuhls
2016-02-27 15:26 ` [Buildroot] [PATCH/next v9 09/28] package/freeswitch: enable mod_yaml, add optional dependency to libyaml Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 10/28] package/freeswitch: enable mod_lua, add optional dependency to lua Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 11/28] package/freeswitch: enable mod_fsv, add optional dependencies to libvpx & libyuv Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 12/28] package/freeswitch: enable mod_av, add optional dependencies to ffmpeg, " Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 13/28] package/freeswitch: enable mod_vpx, add optional dependency to libvpx Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 14/28] package/freeswitch: enable mod_bv, add optional dependency to libbroadvoice Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 15/28] package/freeswitch: enable mod_codec2, add optional dependency to libcodec2 Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 16/28] package/freeswitch: add optional dependency to libg7221 Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 17/28] package/freeswitch: enable mod_ilbc, add optional dependency to libilbc Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 18/28] package/freeswitch: enable mod_isac Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 19/28] package/freeswitch: enable mod_opus, add optional dependency to opus Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 20/28] package/freeswitch: enable mod_portaudio, add optional dependency to portaudio Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 21/28] package/freeswitch: enable mod_silk, add optional dependency to libsilk Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 22/28] package/freeswitch: enable mod_sndfile, add optional dependency to libsndfile Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 23/28] package/freeswitch: enable mod_alsa, add optional dependency to alsa-lib Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 24/28] package/freeswitch: enable mod_soundtouch, add optional dependency to libsoundtouch Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 25/28] package/freeswitch: enable mod_xml_rpc Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 26/28] package/freeswitch: enable mod_imagick, add optional dependencies to imagemagick, libvpx & libyuv Bernd Kuhls
2016-02-29 21:31   ` Thomas Petazzoni
2016-03-01 21:46     ` Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 27/28] package/freeswitch: enable mod_memcache, add optional dependency to libmemcached Bernd Kuhls
2016-02-27 15:27 ` [Buildroot] [PATCH/next v9 28/28] package/freeswitch: add optional dependency to xz Bernd Kuhls
2016-02-29 21:33 ` [Buildroot] [PATCH/next v9 00/28] package/freeswitch: new package Thomas Petazzoni
2016-02-29 21:59   ` Romain Naour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160229222127.27db4013@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox