asterisk: update AST_EXT_TOOL_CHECK for OpenWrt
Issue #672 shows that the current macro has some pitfalls, at least when
running within OpenWrt's buildroot.
The macro is used to detect these tools:
1. xml2-config
2. mysql_config
3. neon-config
4. net-snmp-config
5. sdl-config (we're not using SDL)
The macro also adds configure arguments that allow to specify a path
like so:
--with-mysqlclient=PATH
Macro problems:
1. If no PATH is specified, it adds "/bin" to the search path.
Obviously this is a bad thing when cross-compiling.
2. If a PATH is specified, it adds it to the start of every include
and library path it encounters. These paths are then broken.
This commit makes problem 1 go away by making the addition of
"${$1_DIR}/bin" to the PATH dependent on there being a PATH handed to
the macro. An alternative would be to remove the PATH addition
altogether, but then the macro wouldn't behave as expected.
It also removes the path filtering of the include and lib dirs to
address problem 2.
Closes#672
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 79a0acfe56)
asterisk: bump to 18.7.1
The removed patch has been applied upstream and is part of this release.
Signed-off-by: Andre Heider <a.heider@gmail.com>
(cherry picked from commit 0399a3dc73)
asterisk: add missing modules + dependency
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 04b6b267f1)
asterisk: fix build on macos
This commit adds a patch to fix /sbin/launchd detection on macos
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
(cherry picked from commit 4209a36afe)
asterisk: bump to version 18.11.2
- add two new modules (app_sf and func_json)
- update 100-build-reproducibly.patch as upstream refactored some of the
code
- refresh patches
This bump includes fixes for the following security issues:
https://downloads.asterisk.org/pub/security/AST-2022-001.htmlhttps://downloads.asterisk.org/pub/security/AST-2022-002.htmlhttps://downloads.asterisk.org/pub/security/AST-2022-003.html
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 958401fa8f)
asterisk: add --without-libxslt to configure
Since upstream commit b40c4d59b1dd803cad79060fb5b5a48d249ba578
"--disable-xmldoc" does no longer prevent the linking to libxslt, if
available. If that's the case one is greeted with the following error:
Package asterisk is missing dependencies for the following libraries:
libxslt.so.1
This commit explicitly disables the use of libxslt, to avoid the
dependency.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 64a1d2faef)
The upstream commit 6073c91fcf0a46a1525d500c274fa5ab96af7dda broke
non-quectel devices due to the channel driver unable to complete
initialization.
This is fixed in the latest upstream commit.
Signed-off-by: Shaleen Jain <shaleen@jain.sh>
(cherry picked from commit 409e797785)
Provide quick hint to users to sort out possible/likely permission
issue.
Also refreshes some patches.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 829c1cf031)
Currently the asterisk init script starts the service with the group
"asterisk". Like this, even if the asterisk user is part of other groups,
asterisk will not be able to make use of them. So for instance if you add the
user to the group "dialout", asterisk will run under group "asterisk", instead
of "asterisk" _and_ "dialout".
Not specifying the group gets rid of this limitation.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 9017e04b87)
- freetdm is now external
- added the freeswitch library to InstallDev in preparation for freetdm
package
- various fixes related to general build
- patches refreshed
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 4ab96a1879)
freeswitch: add python3 support
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 652d110b2f)
freeswitch: fix 230-mod_radius_cdr.patch
This is a patch in a patch. It may happen that the patch was already
applied previously, so this amends the patch line to continue if the
patch doesn't apply. It also sets the direction to forward-only.
Also removes two trailing whitespace warnings.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 3fafe1afac)
freeswitch: only include python3-version.mk
We're just interested in the version, no need to include more than that.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 42574d54d4)
freeswitch: don't check for distutils
We're not using distutils, so don't check for it. This fixes#704.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit eb145cd014)
freeswitch: update 480-fix-libyuv-dependency.patch
Update the patch with the version that actually was applied upstream. No
functional change.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 6004044dc0)
freeswitch: add missing item to PKG_CONFIG_DEPENDS
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit ebcdcb3547)
Bump to last commit. Includes fix for DTMF causing call release when
using Asterisk 18 (see [1]).
[1] https://github.com/openwrt/telephony/issues/631
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit ec6ba744b0)
This also:
- fixes /etc/modules.d/ipt-rtpengine (needs user and group ids instead
of names)
- adds user as well when kmod is installed so that abovementioned user
and group ids are available
- adds /etc/modules.d/ipt-rtpengine to conffiles
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Update deps of asterisk-res-pjproject. It depends on res_sorcery_config,
which is part of asterisk-res-sorcery.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
New yate modules in this release:
yate-mod-ilbcwebrtc
yate-mod-speexcodec
yate-mod-wiresniff
Some patches were removed:
110-no-libnsl.patch - not needed
120-create-thread-key-on-access.patch - not needed
150-video-codecs-mapping.patch - already applied upstream
Some additional changes:
* An upstream fix (r6470) is cherry-picked to avoid crashing when YATE
receives an invalid SIP message.
* Build directory changed to include package version.
* Set PKG_BUILD_PARALLEL to allow parallelized build of yate.
* Speed up build if yate-mod-ilbccodec or yate-mod-sqlitedb is
disabled (disable ilbc and sqlite in configure step).
* Removing umbrella package yate-collection-basic. It isn't built and
hasn't been built for years and I think the modules it wants to
install are a bit strange and probably not useful to most
users. From the name yate-collection-basic I would expect to get
some basic functionality, but why would I then need
yate-mod-dumbchan, yate-mod-rmanager and yate-mod-tonegen? What is
the use case? I think it's better that users themselves install the
packages needed for their use case, especially in OpenWrt where
flash space usually is limited and you don't want to install more
packages than what you really need.
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
This sets PKG_EXTMOD_SUBDIRS so kernel.mk can find the rtpengine
Module.symvers file.
Also, this puts KERNEL_MAKE_FLAGS into the make flags used to compile
the kernel module. This way Module.symvers files of other modules are
made available, plus there is no need anymore to specify ARCH and
CROSS_COMPILE, as KERNEL_MAKE_FLAGS already takes care of that.
While updating make flags this also adds PKG_JOBS for completeness'
sake.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
rtpengine is not primarily about kernel modules. It's an application
(which also offers a kernel module). So build it in BUILD_DIR instead of
KERNEL_BUILD_DIR.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This adds a term_timeout uci option which can be used to change the
default timeout that procd uses while waiting for freeswitch to exit
once the TERM signal is sent. freeswitch may take a bit longer to exit,
so adding this option is likely appreciated. By default procd's default
is used, though.
Logging is updated in init script and hotplug script. The used facility
is changed from user to daemon, for instance.
An issue was fixed in the parsing of the ntpq output. In case a positive
offset was printed the parsing failed. Apparently ntpq is now adding a
'+', so this is now accounted for.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- patches which are now upstream were removed
- some patches were refreshed
- 003-modmake-fix.patch was amended a bit because of upstream commit
91f12b5 (it changed tests/unit/Makefile.am so that it doesn't
redefine AM_CFLAGS and AM_CPPFLAGS, which results in duplicated flags)
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Uriparser is a compliant URI parsing and handling library for RFC 3986.
For now, this is not included in OpenWrt feeds, but in Turris OS
uriparser is used as dependency for Updater-ng.
When Asterisk finds in build system there is uriparser or anything else mentioned in configure,
it tries to enable it by default. This applies to every package in
OpenWrt and because of that new packages which are added to OpenWrt tries to disable almost
everything by default. Because if someone adds library, some packages
are not compiled or tested.
Fixes:
Package asterisk is missing dependencies for the following libraries:
liburiparser.so.1
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Variable 'UID' is set readonly in some calling contexts, yielding errors
during e.g. ImageBuilder usage:
Enabling rpcd
./etc/init.d/siproxd: line 14: UID: readonly variable
Enabling siproxd
Enabling sysctl
Rename UID and GID variables as SIPROXD_UID and SIPROXD_GID.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
This commit makes asterisk-chan-rtp depend on
asterisk-res-rtp-multicast. Without the res-rtp-multicast module
chan-rtp cannot be loaded:
OpenWrt*CLI> module load chan_rtp.so
Unable to load module chan_rtp.so
Command 'module load chan_rtp.so' failed.
[Jan 9 08:51:01] ERROR[16337]: loader.c:281 module_load_error: Error loading module 'chan_rtp.so': Error relocating /usr/lib/asterisk/modules/chan_rtp.so: ast_multicast_rtp_create_options: symbol not found
This issue was mentioned in the OpenWrt forum ([1]).
[1] https://forum.openwrt.org/t/asterisk-makes-a-problem-with-loading/84816
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This reverts commit 150b85ab35.
OpenWrt upstream updated the lua package so that liblua now is linked
to libdl.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Backport upstream patch fixing this issue.
Remove uClibc-ng patch as it's no longer in the tree.
Refresh patches.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Currently building for archs target against glibc fails:
checking for mandatory modules: CAP GSM ILBC LIBEDIT LIBXML2 LUA PJPROJECT SQLITE3 SRTP ZLIB... fail
configure: ***
configure: *** The LUA installation appears to be missing or broken.
Checking config.log reveals:
/home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/bin/../lib/gcc/arc-openwrt-linux-gnu/8.4.0/../../../../arc-openwrt-linux-gnu/bin/ld: /home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/target-arc_archs_glibc/usr/lib/liblua.so: undefined reference to `dlopen'
/home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/bin/../lib/gcc/arc-openwrt-linux-gnu/8.4.0/../../../../arc-openwrt-linux-gnu/bin/ld: /home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/target-arc_archs_glibc/usr/lib/liblua.so: undefined reference to `dlclose'
/home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/bin/../lib/gcc/arc-openwrt-linux-gnu/8.4.0/../../../../arc-openwrt-linux-gnu/bin/ld: /home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/target-arc_archs_glibc/usr/lib/liblua.so: undefined reference to `dlerror'
/home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/bin/../lib/gcc/arc-openwrt-linux-gnu/8.4.0/../../../../arc-openwrt-linux-gnu/bin/ld: /home/sk/tmp/sdk/openwrt-sdk-archs38-generic_gcc-8.4.0_glibc.Linux-x86_64/staging_dir/target-arc_archs_glibc/usr/lib/liblua.so: undefined reference to `dlsym'
This commit adds "-ldl" to lua linker flags so compilation against glibc
works. This has no ill effect on musl where libdl is just an empty
library archive.
This is not something that should be sent upstream, as they maybe
support non-Linux platforms as well.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Fix patch 230 as it's a patch of a patch with fuzz and wrong offsets.
It seems something on CentOS 7 doesn't like fuzz.
The AC_TRY_RUN section was removed as upstream added a check whether or
not cross compilation is being done, making it no/op.
Refresh other patches.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This is a response to [1] and [2]. In short, since upstream commit
"channel.c: Resolve issue with receiving SIP INFO packets for DTMF" a
segmentation fault occurs during DTMF when no timing module is loaded.
This commit adds the timerfd timing module to the asterisk base package.
Other possibilities would have been res_timing_pthread and
res_timing_dahdi, but timerfd is the obvious choice because it's
efficient and OpenWrt offers the required kernel support (see [3] for
more details).
Note: even without any timing module the segmentation fault should not
occur according to upstream. Upstream is still working on that. But in
general it makes sense to have a timing module available (loaded) and
the module is tiny anyway.
[1] https://github.com/openwrt/telephony/issues/597
[2] https://issues.asterisk.org/jira/browse/ASTERISK-28800
[3] https://wiki.asterisk.org/wiki/display/AST/Timing+Interfaces
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Bumps kamailio to version 5.4.2 and removes the suffix, as there is only
one kamailio version at a time anyway.
Also:
- Replaces a few $(PKG_NAME) uses with simply "kamailio"
- Drops the use of variable PKG_VARIANT (was not set anyway)
- Drops 160-openssl-deprecated.patch (upstream first accepted the
patch, then dropped it again after crashes were reported, see [1])
[1] https://github.com/kamailio/kamailio/issues/2466
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The Erlang module build checks for libs and includes using the erl tool.
This is a hostpkg tool providing paths into the staging/hostpkg.
Of course this fails:
arc-openwrt-linux-uclibc-gcc -shared -Wl,-O2 -Wl,-E -L/builder/shared-workdir/build/sdk/staging_dir/toolchain-arc_arc700_gcc-8.4.0_uClibc/usr/lib -L/builder/shared-workdir/build/sdk/staging_dir/toolchain-arc_arc700_gcc-8.4.0_uClibc/lib -L/builder/shared-workdir/build/sdk/staging_dir/target-arc_arc700_uClibc/usr/lib/libiconv-stub/lib -Wl,-rpath-link=/builder/shared-workdir/build/sdk/staging_dir/target-arc_arc700_uClibc/usr/lib/libiconv-stub/lib -L/builder/shared-workdir/build/sdk/staging_dir/target-arc_arc700_uClibc/usr/lib/libintl-stub/lib -Wl,-rpath-link=/builder/shared-workdir/build/sdk/staging_dir/target-arc_arc700_uClibc/usr/lib/libintl-stub/lib -znow -zrelro -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions handle_emsg.o pv_xbuff.o cnode.o erl_api.o epmd.o erl_helpers.o pv_ref.o pv_pid.o pv_atom.o worker.o handle_rpc.o pv_list.o pv_tuple.o erlang_mod.o -L/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/erlang/lib/erl_interface-4.0/lib -lei -lpthread -o erlang.so
/builder/shared-workdir/build/sdk/staging_dir/toolchain-arc_arc700_gcc-8.4.0_uClibc/bin/../lib/gcc/arc-openwrt-linux-uclibc/8.4.0/../../../../arc-openwrt-linux-uclibc/bin/ld: /builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/erlang/lib/erl_interface-4.0/lib/libei.a: error adding symbols: file format not recognized
collect2: error: ld returned 1 exit status
../../Makefile.rules:191: recipe for target 'erlang.so' failed
make[6]: *** [erlang.so] Error 1
This patch prevents this by relying on the standard paths, where Erlang
resides in OpenWrt.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Also use PKG_SOURCE_DATE now to proper things up. And use INSTALL_DATA
for the configuration file.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>