Sporadic build failures are visible on the build bots.
libyate.so: undefined reference to `TelEngine::ClientLogic::initStaticData()'
libyate.so: undefined reference to `TelEngine::DefaultLogic::DefaultLogic(char const*, int)'
collect2: error: ld returned 1 exit status
Turning off parallel builds should (hopefully) work around this.
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>
.. because the musl implementation doesn't seem to be fully compatible
with yate. We switched to the musl implementation in f6ad95d.
Yate has this regexp:
^([[:alpha:]][[:alnum:]]+:)?/?/?([^[:space:][:cntrl:]@]+@)?([[:alnum:]._+-]+|[[][[:xdigit:].:]+[]])(:[0-9]+)?
Given a string like
sip:012345678@11.111.11.111:5060;user=phone
musl's regexec() returns these matches:
index start end
0 -1 0
1 0 32 sip:012345678@11.111.11.111:5060
2 -1 -1
3 0 14 sip:012345678@
4 14 27 11.111.11.111
5 27 32 :5060
.. but this is what yate expects:
index start end
0 -1 0
1 0 32 sip:012345678@11.111.11.111:5060
2 0 4 sip:
3 4 14 012345678@
4 14 27 11.111.11.111
5 27 32 :5060
Fixes#378
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
Since libmariadb 10.2.x requires to be linked in together with iconv,
include nls.mk to help the build system find it.
Also fix a type in PKG_CONFIG_DEPENDS.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
When configure is called with '--with-mysql="$(STAGING_DIR)/usr"' it tries
to detect mysql manually instead of using mysql_config. This doesn't always
work:
<snip>
checking for MySQL in /var/lib/buildbot/slaves/slave-lede-builds4/i386_pentium4/build/sdk/staging_dir/target-i386_pentium4_musl/usr... no
<snip>
This commit changes the configure argument to '--with-mysql=yes/no'. When
'yes' is selected configure uses mysql_config and then the detection works
reliably.
<snip>
checking for MySQL using mysql_config... yes 10.1.32
checking whether MYSQL_OPT_RECONNECT is declared... yes
checking whether MYSQL_OPT_READ_TIMEOUT is declared... yes
checking whether MYSQL_OPT_WRITE_TIMEOUT is declared... yes
checking whether mysql_set_character_set is declared... yes
<snip>
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Underscores should not be used in package base names as they're used as
semantic separators by opkg.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This reverts commit b8b9818a13.
In hindsight I have to admit I did not correctly understand the
implications of the uclibc++.mk include.
The include allows a package to follow the user's choice regarding which
C++ library should be the standard. Linking against uClibc++ instead of
libstd++ is not a problem when running musl (which is what I had
incorrectly assumed), as both C++ libs are separate packages. And
uClibc++ is a lot smaller than libstd++, which is probably why it is
even the default C++ lib on OpenWrt currently.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Yate is the only package in OpenWrt which manually enables RTTI
(run-time type information). There's no explanation in the Makefile as
to why that would be needed or advisable. Remove it.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
With this include libuClibc++.so.0 gets added as a lib depend, even on
musl. readelf shows:
Dynamic section at offset 0x10ea60 contains 23 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libuClibc++.so.0]
0x0000000000000001 (NEEDED) Shared library: [libc.so]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x000000000000000e (SONAME) Library soname: [libyate.so.6.0.0]
Remove the include from the Makefile and add a depend on libstdcpp
instead.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This reverts commit 4cc2afdcdc which
disabled FORTIFY_SOURCE by removing OpenWrt's CPPFLAGS from the built.
Instead PKG_FORTIFY_SOURCE:=0 is defined, which is the proper way to do
it.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
ilbcwebrtc and isaccodec currently depend on @!arc because the code does
not compile there. The code does not compile on aarch64 either.
Instead of adding @!aarch64 this commit adds a patch copied from Debian
that turns the error "Please add support for your architecture in
typedefs.h" into a warning, allowing the code to build.
Consequently this commit removes @!arc from the depends as well.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
yate cannot be compiled against fortify-source headers at this moment:
In file included from /home/sk/tmp/lede/staging_dir/toolchain-x86_64_gcc-5.5.0_musl/include/fortify/unistd.h:23:0,
from ../yateclass.h:32,
from ../yatengine.h:29,
from ../yatephone.h:29,
from server/ysnmpagent.cpp:22:
/home/sk/tmp/lede/staging_dir/toolchain-x86_64_gcc-5.5.0_musl/include/fortify/fortify-headers.h:20:42: error: type of 'TelEngine::strcat' is unknown
To work around this remove CPPFLAGS from CFLAGS.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- perl and postgresql do not compile on ARC; disable the modules
accordingly
- ilbcwebrtc and isac also cause build failures on ARC; disable them as
well.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Currently conffiles is always filled with <module>.conf. This leads to
"no such file and directory" errors when the file actually does not
exist.
This commit adds a 6th column to BuildPlugin() which indicates if there
is a config file or not.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- remove ARGS that are default anyway
- enable sse2 when target is x86_64
- remove --enable-inline as that causes too many warnings:
ilbccodec.cpp:50:7: warning: inlining failed in call to 'virtual {anonymous}::iLBCFactory::~iLBCFactory()': call is unlikely and code size would grow [-Winline]
class iLBCFactory : public TranslatorFactory
^~~~~~~~~~~
ilbccodec.cpp:50:7: note: called from here
class iLBCFactory : public TranslatorFactory
^~~~~~~~~~~
- --enable-internalregex removed as yate can use external regex
- make some choices depending on whether a package is selected; otherwise the
build might fail, i.e. when spandsp is not installed but the Makefiles tells
the build system to use spandsp anyway
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- remove flags to don't have a reason for being there anymore (there is
no comment on why they're needed).
- add CPPFLAGS to CFLAGS so the compiler can use the FORTIFY_SOURCE
headers.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Currently the Makfile pulls in every dependency mentioned. Fix this by
prefixing the depends with the respective PACKAGE_* items.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Yate ships with a php script (banbrutes.php) which can help block brute
force login/password attacks. Since Yate for OpenWrt doesn't support
php scripts I've written a similar script in perl that's easier to use
with OpenWrt.
The script uses the iptables extension "recent" to keep track of
authentication failures and block users after too many authentication
failures.
This is an alternative to #87. The functionality is mostly the same,
but this is a slightly simplified, more light-weight version since
IP sets aren't used.
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
pthread_key_create used to be called when a specific static key object was
initialized, but if another static object was initialized earlier and this
other object needed the key during its initialization yate would crash.
Fixes#99
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
Yate.pm that is included in yate-scripts-perl uses perl package Data::Dumper
which is provided by openwrt package perlbase-data. Update dependency to
reflect this.
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
echo.sh is a simple yate script which can be used to echo back audio to a
caller. It's useful for testing purposes.
Since the script is a basic shell script it has no specific dependencies.
Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>