This
- updates the dependencies
- makes rtpengine use spandsp3 (it supports this version now)
- 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
- removes 01-cflags.patch since upstream fixed the flag handling
- removes 200-openssl-deprecated.patch as it was integrated upstream
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
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>
This sets STOP to 10 to allow for a graceful shutdown. Users may
additionally need to set "term_timeout" in /etc/config/freeswitch to a
sensible value.
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>
On the build bots the patch patches clashes with Build/Prepare. This
commit removes it in favor of a simple sed script. The resulting change
is identical.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
src/Makefile.defs adds "-march=..." to target flags for ARM targets.
This can clash with the OpenWrt target flags in
CONFIG_TARGET_OPTIMIZATION. If for example the latter is set to
"-mcpu=cortex-a9" the following warning is issued:
cc1: warning: switch '-mcpu=cortex-a9' conflicts with '-march=armv5t' switch
This commit removes these flags. The addition is unwanted when
cross-compiling.
An issue was raised for this recently, see [1].
[1] https://github.com/openwrt/packages/issues/16135
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Some SIP UAs support lots of features and codecs which results in
large SIP messages. YATE, with its default configuration, truncates
and fails to parse received SIP messages which are larger than 1500
bytes. Let's increase the default max message size for OpenWrt users
to make it easier to use yate out-of-the-box.
The new max size of 8192 bytes has been arbitrarily chosen.
I've seen the SIP UA baresip produce messages larger than 1500 bytes
with its default configuration when authentication is used.
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
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>
Upstream implemented or updated IPv6 support.
This commit also updates the package title and fixes some
spelling/grammar in the package's description.
PKG_MIRRIR_HASH removed from Makefile as per suggestion in [1] (svn
checkouts aren't reproducible).
[1] https://openwrt.org/docs/guide-developer/packages
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>
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>
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>
- Bump commit as upstream recently added some bits to support Asterisk 18.
- Switch to INSTALL_DATA for configuration file.
- Remove VARIANT-related bits as we only have one Asterisk version.
- Remove dep on app_voicemail as chan-sccp has no hard dependency on it.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- Bump to new LTS release.
- Move to folder asterisk and remove AST_MAJOR_VERSION variable, as we
only have one version anyway.
- Add new modules.
- Rename voicemail to app-voicemail.
- Remove deps of voicemail on res-adsi and res-smdi as they are
optional.
- Use INSTALL_DATA for headers.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Upstream dropped autotools support, so this converts the build to use
cmake. Adds a simple include fix as well as a fix for older c++
compilers (the latter is a patch from upstream).
Support for pcaps is now also compiled in, to follow what upstream
considers a "common" build.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
There are no secrets in /etc/restund.conf. Remove the postinstall script
and install the file with regular permissions.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
We can now set permissions directly thanks to OpenWrt having added
fakeroot support.. This also changes the permissions of /etc/baresip so
that baresip can write to this directory. For instance it wants to write
the file /etc/baresip/current_contact for which it needs the appropriate
permissions (baresip is started by user baresip).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- remove 010-openssl-deprecated.patch as upstream seems to have fixed
the issue
- upstream closed down the server http://www.creytiv.com/ so this
changes URLs
- dtmfio module removed upstream
- always set DESTDIR so that PREFIX is /usr instead of /usr/local
- update 002-fix-rem-include.patch and remove LIBREM_PATH usage
altogether as it only adds broken include paths which aren't useful in
the end anyway
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add a configuration option SIPROXD_MAX_CLIENTS used for compile-time sizing
of the maximum supported proxy clients. Set this to a default value of 32,
which is more suitable for a small network or CPE router and uses much
less memory than the upstream value of 512 (e.g. RSS of 2 MB vs 17 MB).
Drop the following patch in favour of the new config option:
* 005-reduce-rtpproxy-urlmap-size.patch
Also fix an incorrect configure option, and silence many warnings due to
unused VCS 'ident' variables in the sources.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
This patch was used in 1.10.4 but now it's not used anymore because the
external spandsp3 package is used. Drop the file.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
1. Upstream fixed the parallel build issue in
90ea0b7a1fdd7d8c5adaac87d74ed1c3c74086d0, so no need to force it off
anymore.
2. The same sed script for uncommenting modules in modules.conf is used
multiple times. This commit puts the script into a define that can be
reused.
3. Some ifdefs removed. They only clutter up the Makefile. The sed
script can run a few extra times, it does not matter.
4. Add a few extra dependencies that came to light.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Minor version bump. This also partially reverts
7e7ab06ccd by disabling parallel builds,
as there are sporadic build failures again
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This release includes bug fixes and improvements accumulated over the last
4 years of development snapshots [1].
Bump upstream version, build new plugins 'stats' and 'blacklist', and add
an 'sqlite3' package dependency for siproxd-mod-blacklist.
Disable procd capturing stderr to syslog, since siproxd in 'foreground'
mode writes both to syslog and stderr, duplicating log messages.
Include a patch to drastically reduce memory usage (RSS from 17MB to 5MB
on ipq40xx platform):
* 005-reduce-rtpproxy-urlmap-size.patch
Drop the following patches now included upstream:
* 010-syslog-msg.patch
* 020-gcc10.patch
* 100-musl-compat.patch
[1] http://siproxd.sourceforge.net/index.php?op=changelog.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
This now uses the external spandsp3 package.
Patches:
- 390-t38-reinvite-488-fix.patch removed (finally upstreamed)
- 340-mod-spandsp-fix-typo.patch and 350-gsmopen-spandsp-fixup.patch
added (both accepted into upstream master already)
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Upstream split out spandsp as well. But their spandsp "fork" may not be
a drop-in replacement for the regular spandsp. For now we keep it built
into freeswitch via patch.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- package two new modules: dlgs and pv_headers
- upstream actually provides three more new modules, but two are missing
dependencies in OpenWrt and one is related to systemd
- use INSTALL_DATA instead of INSTALL_CONF for kamailio configuration
files (not talking about /etc/config/kamailio) as they're default
configuration
- refresh 050-fix-kamailio-utils.patch
- drop upstreamed 150-python3-cross-compile.patch
- libsrutils is no longer packaged as upstream moved it into the core
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
No need to have this symbol around here. libfreetdm is part of the same
package (freeswitch) anyway.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
A small but important oversight crept into the last asterisk-chan-dongle
update. The iconv library detection was changed to look for iconv()
instead of libiconv().
Reminder: the autoconf macros for finding libraries do _not_ include any
extra headers when testing the compile. So the redefinitions done in
iconv.h provided by any libiconv (stub or regular) aren't visible during
the test the macros execute.
This means that when testing for iconv() the only iconv that can be
detected is the one from libc. Moreover, if the libc doesn't provide
iconv, the check will fail. Below example is with uclibc:
checking for iconv in -liconv... no
configure: error: iconv library missing
Makefile:87: recipe for target '/builder/shared-workdir/build/sdk/build_dir/target-arc_archs_uClibc/asterisk-chan-dongle-asterisk16/asterisk-chan-dongle-2020-05-28-328b2b7d/.configured_a17fb5ef857664f03cd0ce37cc5ea591' failed
So, this changes the patch to look for libiconv(), again.
Also, instead of using AC_CHECK_LIB this uses AC_SEARCH_LIBS, like
upstream does. There apparently was a problem with that in the past, but
now it works fine.
checking for rm... rm
checking for library containing libiconv... -liconv
checking for sqlite3_open in -lsqlite3... yes
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Currently we disable some sofia tests to prevent build failure. An issue
was actually raised upstream ([1]) where this was discussed.
This cleared up some doubts. For instance it was established that
libcheck is used as a test framework, if the lib is detected. In OpenWrt
libcheck is available, so it may be in staging during the freeswitch
build.
Upstream also mentioned that libcheck is not always compatible with
freeswitch, which depends on the libcheck version.
This commit prevents libcheck detection. This is nicer than explicitly
disabling tests that fail.
[1] https://github.com/signalwire/freeswitch/issues/681
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Bump dongle plugin to latest git revision. PKG_SOURCE_SUBDIR and
PKG_BUILD_DIR are removed because defaults are fine. PKG_VERSION is
replaced by PKG_SOURCE_DATE, which is in line with OpenWrt
recommendation.
Soft deps are removed as per request in issue #536.
iconv handling is updated. Upstream now lets us specify the include
directory, so that makes the patch simpler. The iconv lib detection is
also updated so that it never picks the libc iconv. This way we get the
same iconv handling independent of the libc in use. Now it'll be always
iconv-stub or iconv-full.
libsqlite3 dep is made explicit. There was always a dep on it, but it
was implicit via asterisk. When the dep is made explicit, the dongle
package picks up on the sqlite3 ABI_VERSION, which is nice.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The rtpengine build system uses the Makefiles to generate source files
on the fly. This usually works fine, but when building in parallel,
intermittently the generated files contain garbage (like, lines are
repeated, causing redefinition errors).
As a workaround this commit disables parallel builds.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit follows upstream, how they include the Debian build system
flags, appending them to their own. To that end OpenWrt's flags are now
saved at the beginning of the Makefiles, and appended at the bottom of
lib/lib.Makefile.
This also sorts out the iptables module compile, to use OpenWrt's
LDFLAGS.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
We have both liblua and liblua5.3 in $(STAGING_DIR)/usr. But the headers
for liblua5.3 are in (STAGING_DIR)/usr/include/lua5.3. The way things
are now, Asterisk uses the headers from liblua and links against
liblua5.3.
The easiest way out of this is to turn off the lua detection that is
based on version numbers. The next detection looks for a version-less
lua, which works fine.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit changes handling of configuration and init a bit:
1. Asterisk configuration files are installed with $(INSTALL_DATA). This
way there is no need to chown /etc/asterisk to user asterisk. The
package provides the standard asterisk configuration (no secrets) so
it's OK to install it readable for all. If users put something
sensitive in there they can update permissions how they like.
2. The init script no longer creates directories that the users can
configure in /etc/config/asterisk, which could be all kinds of
strange directories. Instead only the default directories are
created, and only the ones that reside on volatile memory. The other
directories are now created by the package itself.
3. This commit removes the ability to choose a user/group via
/etc/config/asterisk. This makes the init script simpler. If anybody
wants to play around with the user/group, then it's up to them to fix
the permissions.
4. "local" is removed because it's not POSIX.
5. From issue #520 we know that adding the user to the dialout group
does not help with the device permissions for chan_lantiq. This
removes it again.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Patches refreshed, no longer needed patches are dropped.
This adds directory "/usr/share/asterisk/firmware/iax" to silence a
run-time warning.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Upstream commit 2dced93 "[sofia-sip] Build internal tests" enabled the
building of tests. One of them causes build failures on the build bots:
Making all in s2check
make[11]: Entering directory '/builder/shared-workdir/build/sdk/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/freeswitch-1.10.3.-release/libs/sofia-sip/s2check'
COMPILE s2tcase.o
s2tcase.c: In function 's2_tcase_add_test':
s2tcase.c:60:27: error: passing argument 2 of '_tcase_add_test' from incompatible pointer type [-Werror=incompatible-pointer-types]
_tcase_add_test(tc, tf, name, signo, 0, start, end);
^~
In file included from s2tcase.c:35:
/builder/shared-workdir/build/sdk/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/check.h:331:69: note: expected 'const TTest *' {aka 'const struct TTest *'} but argument is of type 'TFun' {aka 'void (*)(int)'}
CK_DLL_EXP void CK_EXPORT _tcase_add_test(TCase * tc, const TTest * ttest,
~~~~~~~~~~~~~~^~~~~
s2tcase.c:60:31: error: passing argument 3 of '_tcase_add_test' makes integer from pointer without a cast [-Werror=int-conversion]
_tcase_add_test(tc, tf, name, signo, 0, start, end);
^~~~
In file included from s2tcase.c:35:
/builder/shared-workdir/build/sdk/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/check.h:332:47: note: expected 'int' but argument is of type 'const char *'
int _signal, int allowed_exit_value,
~~~~^~~~~~~
s2tcase.c:60:7: error: too many arguments to function '_tcase_add_test'
_tcase_add_test(tc, tf, name, signo, 0, start, end);
^~~~~~~~~~~~~~~
In file included from s2tcase.c:35:
/builder/shared-workdir/build/sdk/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/check.h:331:27: note: declared here
CK_DLL_EXP void CK_EXPORT _tcase_add_test(TCase * tc, const TTest * ttest,
^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
I can't reproduce this at home. Not with a master checkout, not with a
current SDK. But the tests are not needed for the OpenWrt packages
anyway, so this commit disables them again.
No rev bump is done because this has no effect on the packages.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
rtpengine is a proxy for RTP traffic. It has lots of capabilities,
including transcoding, in-kernel forwarding and SRTP transport, to name
a few.
Packaging:
1. regular rtpengine
2. rtpengine variant without transcoding support (smaller dependency
tree)
3. recording daemon
4. kernel module
5. iptables module
Simple init scripts (procd) are included, plus a hotplug script for
rtpengine.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This is in response to a posting on oss-security ([1]).
This commit removes the ability to choose a user/group via
/etc/config/freeswitch. This makes the init script simpler. If anybody
wants to play around with the user/group, then it's up to them to fix
the permissions.
The complex awk script is deleted and replaced by two for-loops,
basically. The first loop creates "/var/lib/freeswitch" and
"/var/run/freeswitch" and chowns them to freeswitch, in case they don't
exist already.
The second loop checks if the other directories (either the default ones
or the ones specified by the user) exist. If any is missing it uses "su"
to create that directory as user "freeswitch".
The reasoning behind this is that a) this works for the defaults
(example: "/tmp/freeswitch/db") and b) the user can specify anything
he/she wants in "/etc/config/freeswitch", which could be all kinds of
strange directories. "mkdir" may now fail, as we're not calling it as
root anymore, but we err on the side of caution, as the saying goes.
Calls to "chmod" are eliminated. Instead the desired mode is provided to
"mkdir". The latter applies the mode only to the final directory.
Possible parent directories are created with the regular umask alone.
A dependency on the "su" utility is added to the Makefile.
"local" also gets removed because it is undefined in POSIX.
[1] https://www.openwall.com/lists/oss-security/2020/04/30/1
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Since recent commit 60ea8ff OpenWrt flags are added to CC_EXTRA_OPTS
instead of CFLAGS, allowing upstream flags to pass into our builds.
Upstream passes "-funroll-loops", which increases package sizes
significantly.
Example mips:
kamailio5_5.3.3-1_mips_24kc.ipk: 1019K
kamailio5_5.3.3-2_mips_24kc.ipk: 1,4M
This commit removes "-funroll-loops", reducing the size to previous
level.
kamailio5_5.3.3-2_mips_24kc.ipk: 1021K
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Adds the Python 3 module. Patch is required because otherwise the
module's Makefile tries to get the includes from host python.
The patch also adds "--embed" to the python-config call that discovers
LDFLAGS as otherwise the python lib is not linked into the module.
Patch has been accepted upstream already.
Adding PYTHON3 to MAKE_VARS tells the Makefile which python to use.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This switches the Makefile away from calling "make" manually to using
OpenWrt default build defines. This way PKG_BUILD_PARALLEL and
PKG_INSTALL can be used.
To achieve this the flags are added to MAKE_FLAGS. The flags are also
tidied up as per example from Alpine Linux. Like this the build is
cleaner, for instance this gets rid of the wrong share directory
("//share/kamailio" instead of "/usr/share/kamailio") and things like
multi-slashes in directory names (ex. "///usr/lib/kamailio/modules").
lib_target was removed after verifying that the correct RPATH
"/usr/lib/kamailio" is still in place without it.
CFLAGS is replaced by CC_EXTRA_OPTS (same is already done for LDFLAGS).
This way upstream source can add flags like "-Wall" to OpenWrt builds.
Extra flags LOCALBASE, SYSBASE and CROSS get removed as they aren't
needed anymore with the "Alpine Linux" flags.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit updates kamailio to version 5.3.3.
Within this commit the python support is removed, since
the python 2.x support is removed and app-python3 is not
ready yet.
Signed-off-by: Jiri Slachta <jiri@slachta.eu>
Following the removal of python2 from packages this commit removes
python support from this package. FreeSWITCH at present does not support
python3.
120-fix-copts.patch is refreshed.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Remove the opencv module from freeswitch-stable. The module
has been marked BROKEN already for some time, and currently
it causes a dependency error, as the opencv package itself
was removed from the packages feed.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The libpq pkg-config file has been fixed in packages, so we can revert
the commit that introduced the workaround.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
CFLAGS aren't used when compiling objects for check_expr2. This commits
adds the flags, which fixes the compilation when PKG_ASLR_PIE is
enabled. Note: The STANDALONE define is removed because it is already
defined in _ASTCFLAGS.
Fixes#502
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Patches refreshed, two patches removed (included upstream), fixed one
typo (will send pull request to upstream if nobody did so yet).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
gentls_cert generates certificates that are deemed too weak by Debian's
OpenSSL (on Buster and up). This patch upgrades the message digest to
SHA256 to address this.
See patch for details. Sent upstream ([1]).
[1] https://github.com/signalwire/freeswitch/pull/126
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
FS supports OpenSSL 1.1 but still relies on some of its deprecated
symbols. This commit updates the package's depends to reflect that.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
There were problems in the past with OpenWrt's libxml2 package (also
it's host package). This led to quite a few workarounds in the asterisk
Makefile.
Recent changes in the libxml2 package have cleared this up.
1. a proper xml2-config file is now installed by both libxml2 and
libxml2/host
2. xml2-config is now installed with a host triplet prefix (e.g.
"mips-openwrt-linux-xml2-config" for libxml2 and
"x86_64-pc-linux-gnu-xml2-config" for libxml2/host), additionally
these tools get a symbolic link to xml2-config
That means that now OpenWrt's libxml2 can be properly detected and the
workarounds are no longer required.
This commit also removes an explicit dependency on libxml2 from
res-calendar-caldav. The base package already depends on libxml2, hence
the dependency is implicit.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
menuconfig is currently showing warnings for kamailio:
WARNING: Makefile 'package/feeds/telephony/kamailio-5.x/Makefile' has a dependency on 'bcunit', which does not exist
WARNING: Makefile 'package/feeds/telephony/kamailio-5.x/Makefile' has a dependency on 'mediastreamer2', which does not exist
WARNING: Makefile 'package/feeds/telephony/kamailio-5.x/Makefile' has a dependency on 'ortp', which does not exist
This commit removes the module in question to clear the warnings.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
From upstream release notes:
Six new modules:
- app_lua_sr – old Lua API before introduction of KEMI
- lost – HELD (RFC6155) and LOST (RFC5222) location-based routing
- kemix – KEMI specific extensions
- rtp_media_server – embedded RTP and media processing
functionalities for Kamailio (like playing media or bridging in a
B2BUA manner, includes support for different codecs, including Opus)
- secfilter – filters to allow/block using whitelists/blacklist based
on user agents, IP addresses, countries, domains and users
- xhttp_prom – generates suitable metrics for a Prometheus monitoring
platform, answering to Prometheus pull requests
Additionally this removes libxml2 dependency from modules, because base
kamailio package already depends on it.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Also adds two new modules, app-attended-transfer and app-blind-transfer.
Patches refreshed, the ones that are part of the source tarball are
dropped.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
When libbsd is available in staging it will be picked up by pcapsipdump
during the compile. The binary will link to libbsd, causing an
additional dependency. Currently the builds on the bots are failing
because of this.
The only function pcapsipdump is using from libbsd is strlcpy(). This
function is also provided by uClibc as well as musl.
Attached patch adds a detection mechanism that checks whether libc
provides strlcpy(). This way the dependency on libbsd is only required if
building against a libc which doesn't package strlcpy(), like glibc.
DEPENDS are updated to reflect that.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The last official release is quite old. But pcapsipdump's trunk has seen
a steady stream of fixes and improvements. This commit updates the
package to a current SVN snapshot.
MAKE_FLAGS is simplified. The deleted ARGS are provided by OpenWrt
buildroot, no need to specify them again. All that is needed is LIBS.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Update snapshot to latest. Includes a fix for a memory leak.
Version handling changed to use PKG_SOURCE_DATE and PKG_SOURCE_VERSION
as per OpenWrt package policies [1].
PKG_BUILD_PARALLEL:=1 added.
[1] https://openwrt.org/docs/guide-developer/package-policies
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Upstream accepted OpenWrt patches, so most can be removed.
Other changes:
- version handling changed to use PKG_SOURCE_DATE and PKG_SOURCE_VERSION
as per OpenWrt package policies [1]
- ./files/rtpproxy.config renamed to ./files/rtpproxy.conf also as per
OpenWrt package policies [1]
- no longer needed Makefile variables dropped (PKG_SOURCE_SUBDIR etc.)
- PKG_CHECK_FORMAT_SECURITY:=0 dropped, patch for that upstreamed as
well
- PKG_BUILD_PARALLEL:=1 added
- PKG_LICENSE_FILES updated
- dropped bcg729 deactivation hack (fixed by adding bcg729 pkg-config
file in other commit)
- dependency on libatomic now required
- updated rtpproxy-mod-acct-csv TITLE
- added --without-xsltproc to CONFIGURE_ARGS to prevent build failure
- added new module rtpproxy-mod-acct-rtcp-hep
- added utilities extractaudio and makeann
- updated patch to prevent debug build of rtpp_acct_rtcp_hep
[1] https://openwrt.org/docs/guide-developer/package-policies
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Minor version bump.
Also renamed ./files/kamailio.config to ./files/kamailio.conf as per
OpenWrt package policies [1].
One patch refreshed.
[1] https://openwrt.org/docs/guide-developer/package-policies
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Use $(INSTALL_CONF) instead of $(CP) for module configuration files.
$(INSTALL_CONF) is already used for the init script and utility
configuration files
Rename ./files/asterisk.config to ./files/asterisk.conf as per OpenWrt
package policies page [1].
[1] https://openwrt.org/docs/guide-developer/package-policies
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add patch for a remote crash vulnerability. Crash can occur when
negotiating for T.38 with a declined stream.
CVE-2019-15297
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
As per convention the configuration file in the files directory should
carry the extension .conf.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The bundled libvpx got updated and now includes some extra tools. But
the linker is fed with some options it doesn't like, which results in
this:
/builder/shared-workdir/build/sdk/staging_dir/toolchain-x86_64_gcc-7.4.0_musl/bin/x86_64-openwrt-linux-musl-ld: unrecognized option '-Wl,-rpath-link=/builder/shared-workdir/build/sdk/staging_dir/target-x86_64_musl/usr/lib/libiconv-stub/lib'
/builder/shared-workdir/build/sdk/staging_dir/toolchain-x86_64_gcc-7.4.0_musl/bin/x86_64-openwrt-linux-musl-ld: use the --help option for usage information
/builder/shared-workdir/build/sdk/build_dir/target-x86_64_musl/freeswitch-1.10.0.-release/libs/libvpx/tools.mk:52: recipe for target 'tools/tiny_ssim' failed
make[6]: *** [tools/tiny_ssim] Error 1
freeswitch doesn't need these tools, it just needs the library, so this
commit just disables them.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Utility not usable right now because it has run-time deps on plugins for
TTS, which we don't have currently. But the utility is built by default,
so package it.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- PostgreSQL is a module now, it's no longer in the core. This commit
removes the related options.
- New modules: mod_mariadb and mod_pgsql. The latter cannot be compiled
against uclibcpp because of a missing header ("unordered_map").
- Fixed a typo in the eval line for mod_mp4v.
- Refreshed patches.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
@arnysch pointed out on openwrt-devel that chan-lantiq fails to build
against kernel 4.19.x. He already fixed this upstream, so we can just
bump the snapshot to get chan-lantiq to compile again.
This also means that we can remove the malloc/free patch as it is
included upstream as well.
Finally, Build/Prepare and the file "default.exports" can be dropped as
the file got included upstream.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Converts the init script to procd. The user "asterisk" is added to the
system. This user will be used by default.
The init script no longer extracts its configuration from
"/etc/default/asterisk". Instead the uci configuration
"/etc/config/asterisk" is introduced.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Recently liblua5.3 was added in the base repo. When both default liblua
and liblua5.3 are staged, asterisk will prefer the latter. But then the
dependency is wrong, because the linked-to lib is in liblua5.3.
This commit upgrades the dependency from liblua to liblua5.3.
Resolves#441.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Since OpenWrt commit e82a4d9cfb ("config: regenerate *_shipped sources")
a few recursive dependencies have been discovered that were not visible
before.
$ make menuconfig
tmp/.config-package.in:103098:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:103098: symbol PACKAGE_baresip-mod-pulse depends on PACKAGE_baresip-mod-pulse
tmp/.config-package.in:121863:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:121863: symbol PACKAGE_pulseaudio-profiles depends on PACKAGE_pulseaudio-profiles
tmp/.config-package.in:121878:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:121878: symbol PACKAGE_pulseaudio-tools depends on PACKAGE_pulseaudio-tools
The recursive dependencies were reported at [1] and [2].
This commit addresses the recursive dependency of baresip-mod-pulse. The
new dependency string may look a bit peculiar, but it works and when
specified like this pulseaudio (when selected) doesn't get compiled
automatically when the intention is only to build baresip with mod-pulse
disabled (which in general is why we have the "patsubst" in the module
builder - but this is only triggered when the dependency has a leading
"+").
[1] https://github.com/openwrt/packages/issues/9300
[2] https://forum.openwrt.org/t/make-menuconfig-errors-this-day/38673/5
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The telephony headers [1] were removed from the kernel, so the Asterisk
channel driver chan-phone can not be built anymore (it depends on these
headers). This causes failures on the build bots on targets which use
kernel 4.19.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The telephony headers [1] were removed from the kernel, so the Asterisk
channel driver chan-phone can not be built anymore (it depends on these
headers). This causes failures on the build bots on targets which use
kernel 4.19.
This commit removes chan-phone.
[1] c26dd817d9
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- added trailing '--' to logger to make it foolproof
- the script now checks if user and group exist
- directory creation is now done via awk script (more robust)
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>