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>
The current patch disables semaphore use always. But musl and glibc
support semaphores. Only uClibc doesn't support them (the functions are
defined but just throw an error when called).
The patch is updated to allow Asterisk to use the system semaphores when
using anything but uClibc. It is also renamed to reflect that.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The current module descriptions look a bit topsy-turvy.
This updates the BuildAsteriskModule macro to simply take any sentence
(without trying to integrate the input into another string). If the
input contains '\n' a line break is inserted.
The module descriptions were updated from menuselect-tree.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Initial commit of Asterisk 16. Cleans up Makefile; the version number
now only occurs once in it.
Upstream removed the following modules:
- format_jpeg
- res_pjsip_registrar_expire (functionality was moved into
res_pjsip_registrar.)
pjsip has a new dependency, res-http-websocket.
Notes:
- replaced res_ninit patch
Replaced patch with the one from Alpine. It's a bit more flexible and
allows usage of res_ninit where available (when building against
glibc).
- fixed musl compiles
astmm.h now always gets included by asterisk.h, redefining allocators.
This causes breakage on musl:
ccache_cc -o chan_pjsip.o -c chan_pjsip.c -MD -MT chan_pjsip.o -MF .chan_pjsip.o.d -MP -pthread -I/home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1/include -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -iremap/home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1:asterisk-16.2.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/lib/libiconv-stub/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/lib/libintl-stub/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/include -I/home/sk/tmp/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/usr/include -I/home/sk/tmp/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/include/fortify -I/home/sk/tmp/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/lib/libiconv-stub/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/lib/libintl-stub/include -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/include/libxml2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -fPIC -DAST_MODULE=\"chan_pjsip\" -DAST_MODULE_SELF_SYM=__internal_chan_pjsip_self -DPJ_AUTOCONF=1 -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0 -fPIC -I/home/sk/tmp/openwrt/staging_dir/target-mips_24kc_musl/usr/include
In file included from /home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1/include/asterisk.h:23:0,
from chan_pjsip.c:35:
/home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1/include/asterisk/astmm.h:158:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
Do_not_use_calloc__use_ast_calloc->fail(a, b)
^
/home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1/include/asterisk/astmm.h:162:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
Do_not_use_free__use_ast_free_or_ast_std_free_for_remotely_allocated_memory->fail(a)
^
make[4]: *** [/home/sk/tmp/openwrt/build_dir/target-mips_24kc_musl/asterisk-16.2.1/Makefile.rules:153: chan_pjsip.o] Error 1
The problem is that with _GNU_SOURCE defined musl also declares calloc in
<sched.h> - and when asterisk's source includes <sched.h> _after_
"asterisk/astmm.h" the definition clashes with the macro. Timo Teräs from
Alpine Linux fixed this by including <pthread.h> in "asterisk/compat.h". He
chose to include <pthread.h> instead of <sched.h> because the original
header inclusion chain seems to be "asterisk/astobj2.h" ->
"asterisk/lock.h" -> <pthread.h> -> <sched.h>. It seems Asterisk
practically never includes <sched.h> directly.
- added loader workaround for musl
When the modules are loaded, asterisk segfaults on musl.
Asterisk Dynamic Loader Starting:
[Mar 2 22:30:05] NOTICE[20712]: loader.c:2230 load_modules: 91 modules will be loaded.
Segmentation fault
[48817.544248] do_page_fault(): sending SIGSEGV to asterisk for invalid read access from 00000000
[48817.544258] epc = 77f6b764 in libc.so[77ef8000+94000]
[48817.544285] ra = 0048d579 in asterisk[400000+160000]
The real problem is that the loader expects dlopen to always run the
constructor, which doesn't happen with musl, because its dlopen is
permanent.
This commit adds a new configure switch '--enable-permanent-dlopen'.
When enabled, the loader will manually call 'ast_module_register(...)'
and 'ast_module_unregister(...)' when needed.
- allow eventfd detection
Asterisk 16 wants to use eventfd, but it doesn't allow the detection
during cross-compiling. This results in runtime warnings, for instance
when shutting down:
[Mar 2 22:37:41] WARNING[21593]: alertpipe.c:112 ast_alertpipe_read: read() failed: Bad file descriptor
[Mar 2 22:37:41] WARNING[21593]: alertpipe.c:112 ast_alertpipe_read: read() failed: Bad file descriptor
[Mar 2 22:37:41] WARNING[21593]: alertpipe.c:112 ast_alertpipe_read: read() failed: Bad file descriptor
Relax the configure script so that eventfd can also be detected when
cross-compiling.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This adds two (three, really) sed scripts to update the default
configuration. All example accounts are getting disabled/commented. And
the module_path is set to the actual path.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The files in /usr/share/baresip are all read-only anyway, so
INSTALL_DATA can be used.
Use it as well for the included (default) modules, otherwise they'll
have different permissions than the extra modules.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
It is not a nice user experience when a package changes configuration
files during an upgrade. Remove this from the postinstall routine.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The ffmpeg full variant does not compile on i386_pentium currently.
Disable ffmpeg support on i386 to prevent breakage on the buildbots.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
It is not a nice user experience when a package changes configuration
files during an upgrade. Remove this from the postinstall routine.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The ffmpeg full variant does not compile on i386_pentium currently.
Disable mod_av on i386 to prevent breakage on the buildbots.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add two patches that were submitted upstream to address warnings that
occur when using gcc 8.3 (like arc does currently) which turn into
errors (-Werror).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The libhiredis package now contais a fix for its pkgconfig file. This
allows to add prefixes, which is needed when cross-compiling in
environments like OpenWrt.
Therefore, the workaround in kamailio is no longer needed and can be
removed.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Since the update to openssl-1.1.1a the compile fails like this:
CC src/libfreeswitch_la-switch_rtp.lo
src/switch_rtp.c: In function 'switch_rtp_get_random':
src/switch_rtp.c:2419:2: error: implicit declaration of function 'RAND_bytes'; did you mean 'RSA_bits'? [-Werror=implicit-function-declaration]
RAND_bytes(buf, len);
^~~~~~~~~~
RSA_bits
cc1: all warnings being treated as errors
make[4]: *** [Makefile:2377: src/libfreeswitch_la-switch_rtp.lo] Error 1
This patch adds the missing include.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- bump to 5.2.1
- drops sources.openwrt.org from PKG_SOURCE_URL because this mirror is
meant as last resort
- adds six new modules (app_python3 marked @BROKEN - doesn't compile
yet)
- 050-fix-kamailio-utils.patch refreshed. Alpine pushed a fix upstream
that fixes the quoting issue, so this part could be dropped. I found
some other issue with kamctl, where the prompt (for password) wasn't
shown because OpenWrt doesn't have /dev/stderr. So I fixed that and
added it to this patch as well. Sent upstream.
- hiredis handling was changed upstream. They changed the default
include from "hiredis/hiredis.h" (which worked for us) to "hiredis.h".
And the only way to get "hiredis/hiredis.h" is via pkg-config, which
upstream doesn't allow during cross-compile, probably because hiredis
pkg-config is rubbish. Patch added to forces pkg-config detection.
Also includes a fix for a logical error in the Makefile regarding
header setup. Sent upstream.
Patch to fix hiredis pkg-config file sent upstream (also to OpenWrt
package maintainer). Even without hiredis patch we can get away with
forcing pkg-config detection of hiredis.
- dropped two patches that were upstreamed
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In a previous commit I updated the copyright message. But that was not
correct as I am not affiliated with OpenWrt. And I cannot change the
copyright message from a third party either. This commit reverts the
changes.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In a previous commit I updated the copyright message. But that was not
correct as I am not affiliated with OpenWrt. And I cannot change the
copyright message from a third party either. This commit reverts the
changes.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In a previous commit I updated the copyright message. But that was not
correct as I am not affiliated with OpenWrt. This commit reverts the
change.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In a previous commit I updated the copyright message. But that was not
correct as I am not affiliated with OpenWrt. This commit reverts the
change.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In a previous commit I updated the copyright message. But that was not
correct as I am not affiliated with OpenWrt. This commit reverts the
change.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Maintainer is not affiliated with OpenWrt so copyright needs to be set
to maintainer instead of OpenWrt. Also correct the year - it should read
the year in which the Makefile was first written.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
sources.openwrt.org is used by the build system as a last-resort mirror.
It's not supposed to be used as a regular source mirror. Remove it from
PKG_SOURCE_URL.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Refresh patches + add patch to remove luajit detection, which was added
upstream for this release. luajit is available in OpenWrt, but seems to
always fail on the buildbots. To prevent surprises in the future disable
it for now.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Although siproxd normally logs to syslog, it's debug output appears to go
only to stderr. Adjust procd setup to also capture stderr in syslog.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
This has the advantage of being available in the package catalog and
hence anytime both pre- and post-installation for someone looking for
information, using only the 'opkg info siproxd' command.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Patch from upstream:
Summary Remote crash vulnerability DNS SRV and NAPTR lookups
Nature of Advisory Denial Of Service
Susceptibility Remote Unauthenticated Sessions
Severity Moderate
Exploits Known No
Reported On October 23, 2018
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- clean up variable names
- add options to uci config to enable/disable logging
- remove option change_perm as it's hacky
- change check before mkdir and friends to prevent
overwriting/chown/chmod of existing files/directories (important)
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Don't force freeswitch to off during postinstall. It's not common
practice (anywhere) and it may be confusing.
Add a link to the Wiki, too, and bump the revision.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
There is no point in keeping the hotplug script in an extra package.
Move it to the main package.
The priority of the script is changed from 99 to 90 as the freeswitch
init script uses the same.
The postinstall script will check if 99-freeswitch exists. If it does a
warning is displayed with the suggestion to uninstall the hotplug
package.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
procd runs as pid 1. When freeswitch realizes that its parent has pid 1,
it thinks that it has been orphaned and terminates the console thread.
That's why procd isn't able to get freeswitch's console output.
This commit mutes the check in src/switch_console.c. Now console output
is properly logged. The workaround parameters "-nc -nf" are replaced by
a proper "-c" ("console").
Additionally this commit hands control over killing freeswitch to procd.
It's no longer done by the script. This simplifies things quite a bit.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Following up the discussion in pull request #388 this commit removes the
depend on libx264 and prevents baresip from linking to libx264.
baresip can still use a H.264 encoder through ffmpeg, which is the
preferred way anyway.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Minor version bump. Two CVE patches can be removed as they're already
included in the source. One patch was refreshed.
Also:
- https://sources.openwrt.org is added as primary source URL to lessen
the load on kamailio upstream
- Build/Configure is defined as empty (because there is no configure
script in the source tree
- patch is added to fix dp_replace(); the function was first added in the
5.1 release and didn't work; patch was accepted upstream
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Remove the depend on mod-db-sqlite from some modules. They may depend on
a db module, but any will do. And mod-jsonrpcs also does not depend on
mod-json.
Maybe things were different in the past. But today these depends aren't
needed.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
kamailio can be started with multiple "-l" ("listen") parameters to tell
it which IPs to listen on. This can also be configured in kamailio.cfg,
of course.
This commit adds the ability to the init script to translate iface names
like "wan" into IP addresses and hand them over to kamailio as command
line arguments. This is useful when using a network connection where IPs
are dynamically assigned.
kamailio can also work with interface names, e.g. "eth0". But it may
listen to all IPs configured on the interface. To avoid this the commit
differentiates beteen IPv4 ("listen") and IPv6 ("listen6"). So if the
user wants kamailio to only listen on an IPv4 address configured on a
certain iface ("wan" for instance), he/she can just specify a list entry
"listen" with that iface.
An explanation is also added to the uci configuration file.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Commit f84dda74e6 ("kamailio-5.x: enable
FAST_LOCK for MIPS") turned out to be problematic, because it changed
the ARCH to "mips2" not only for "mips", but also for some "mipsel"
targets, which was unintentional.
Address this by filtering for "mips" specifically before setting the
variable.
Also, get rid of PKG_BUILD_PARALLEL, because adding it really didn't
change anything - due to the way "make" is called. Leave a comment to
prevent repetition (read: prevent _me_ from doing the same mistake again
in the future).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit
- updates init script to use procd
- adds a default user 'kamailio' (kamailio will switch to this user)
- introduces uci init config (instead of /etc/default/kamailio)
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
rtpproxy expects IPs as parameters. Lots of OpenWrt devices use
connections where the IP is dynamically assigned. This commit adds shell
functions to convert an iface like 'wan' to an IP address before adding
the parameter to the rtpproxy command line.
Explanation is provided in /etc/config/rtpproxy. Some whitespace issues
were also fixed.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add log_level option to uci config. Paired with the comment it makes
setting the log level easier when no man page is around.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Update rtpproxy init script to use procd.
Also increases the start priority to 90 (like the hotplug script) to
make sure rtpproxy is started before kamailio.
Fixes some whitespace issues along the way, too.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Install hotplug script along with rtpproxy. It will only be used if
enabled by the user (via uci config file).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
With OpenWrt default awk - so awk from busybox - the filter is broken,
causing jsonrpc calls to fail, i.e. when running "kamctl ps". Below
patch makes the filter portable. Patch was already accepted upstream.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add package for Opus codec support plugin. Variants for both asterisk13
and asterisk15 included.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
.. 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>
- bump version
- go back to using release tarballs (unavailable when 1.8.1 was
initially released)
- add OpenWrt mirror
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add upstream fix for AST-2018-009: Remote crash vulnerability in HTTP
websocket upgrade
The vulnerability affects the res_http_websocket.so module.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Add upstream fix for AST-2018-009: Remote crash vulnerability in HTTP
websocket upgrade
The vulnerability affects the res_http_websocket.so module.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
In Kamailio before 5.0.7 and 5.1.x before 5.1.4, a crafted SIP message with
an invalid Via header causes a segmentation fault and crashes Kamailio. The
reason is missing input validation in the crcitt_string_array core function
for calculating a CRC hash for To tags. (An additional error is present in
the check_via_address core function: this function also misses input
validation.) This could result in denial of service and potentially the
execution of arbitrary code.
Patch from upstream.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit replaces /etc/default/freeswitch with /etc/config/freeswitch.
This way the init and hotplug configuration can be done with uci instead of
having to edit a file.
This also does away with the busybox ntpd warning. ntpd uses the same
configuration in system and it looks like busybox's ntpd is not used when
ntpd is installed.
Lastly some log strings are amended to start with a lowercase letter.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
There is a discussion ongoing if parallel builds should be enabled by
default. For freeswitch parallel builds are known to fail when certain
modules are enabled. This commit preemptively disables parallel builds
explicitly.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
A recent commit in packages/lang/perl is causing a problem with the
perlmod.mk include. Work around this by including perlver.mk instead and
setting up PERL_CMD and PERL_SITELIB manually.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
CVE-2018-14767: "In Kamailio before 5.0.7 and 5.1.x before 5.1.4, a
crafted SIP message with a double "To" header and an empty "To" tag
causes a segmentation fault and crash. The reason is missing input
validation in the "build_res_buf_from_sip_req" core function. This could
result in denial of service and potentially the execution of arbitrary
code."
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Sometimes freeswitch doesn't exit after receiving the SIGTERM signal.
This can be reproduced by sending SIGTERM to a freeswitch instance which
is initializing (which can take quite some time).
Instead of just giving up and exiting - leaving a hung freeswitch
process on the system - this commit adds some lines to the init script
that send SIGKILL to freeswitch in case the attempt to terminate it with
SIGTERM fails.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Applied a patch, submitted upstream at
https://freeswitch.org/jira/browse/FS-11193
that fixes two memory leaks in mod_event_multicast.c
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
- Bump version from 1.6.20 to 1.8.1 (includes OpenSSL 1.1.0 support).
- Upstream didn't provide a source tarball yet, switch to git to grab
the release.
- freeradius-client got updated to 1.1.7 by upstream, update version and
checksum accordingly.
- tiff, libvpx and pcre patches are no longer needed, drop them.
- Refresh the remaining patches. Only minor changes were needed.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Remove the hack for iconv on uclibc. Instead include nls.mk which will
sort out the iconv depends.
This changes the iconv patch. AC_SEARCH_LIB doesn't work properly for
openwrt/lede. Instead use AC_CHECK_LIB.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The sed script used on libs/unimrcp is used to set LDFLAGS using
APR_SETVAR. Since nls.mk is included there are LDFLAGS with commas. But
the macro APR_SETVAR uses commas to separate arguments, so now the
LDFLAGS are only getting partially copied.
Solve this by surrounding LDFLAGS with brackets ([...]).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Removes the uClibc iconv hack. Instead nls.mk is included to sort out
iconv depends.
mod_gsmopen isn't able to figure out if iconv's inbuf is const. In
OpenWrt this is the case with libiconv-full, not with libiconv-stub. To
aid mod_gsmopen update 270-fix-uclibc-iconv-in-gsmopen.patch so that we
can pass on if inbuf is const via CFLAGS.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The macro included in apr/apr-util is incorrect. It results in extra
brackets being put into conftest.c, for example:
#include "confdefs.h"
[
#include <stddef.h>
#include <iconv.h>
]
int main(int argc, const char *const *argv) {
[
iconv(0,(char **)0,(size_t *)0,(char **)0,(size_t *)0);
]
return 0; }
The test always fails with:
error: expected identifier or '(' before '[' token
The following checks are affected:
- variable length arrays
- type of inbuf parameter to iconv
Fix from upstream (Apache).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
libmariadb 10.2 needs to be linked in together with iconv. Include nls.mk
to help the build system find the iconv library.
Also update func_iconv's depend. We want to use the variable
$(ICONV_DEPENDS) provided by nls.mk. It resolves to
+BUILD_NLS:libiconv-full. This cannot be handled properly right now, as the
module depends filter cannot handle +<SYMBOL>:<package> depends. So add
another field to the Makefile's module function for complex depends, which
are passed on unfiltered.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
libmariadb 10.2 needs to be linked in together with iconv. Include nls.mk
to help the build system find the iconv library.
Also update func_iconv's depend. We want to use the variable
$(ICONV_DEPENDS) provided by nls.mk. It resolves to
+BUILD_NLS:libiconv-full. This cannot be handled properly right now, as the
module depends filter cannot handle +<SYMBOL>:<package> depends. So add
another field to the Makefile's module function for complex depends, which
are passed on unfiltered.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
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>
Currently compiles fail with:
CC libfreeswitch_la-switch_regex.lo
src/switch_regex.c: In function 'switch_regex_compile':
src/switch_regex.c:40:9: error: return from incompatible pointer type [-Werror=incompatible-pointer-types]
return pcre_compile(pattern, options, errorptr, erroroffset, tables);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Makefile:2100: recipe for target 'libfreeswitch_la-switch_regex.lo' failed
make[5]: *** [libfreeswitch_la-switch_regex.lo] Error 1
Fix cherry-picked from upstream.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Switch to use procd for init, with support for jails. Clean up code and
restructure callback processing to be more robust and understandable. This
also fixes a bug processing multiple siproxd config sections, as reported
by Michael Kuron.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
When there is no sounds cache declared the build system will not attempt to
download any sound packs or their SHA1 checksums.
This is to be preferred because:
a) the build may occur offline, causing it to fail
b) plain http is used by the build system for downloading
There is no drawback here because the standard sound packs are included in
the Asterisk source tarball already.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
When there is no sounds cache declared the build system will not attempt to
download any sound packs or their SHA1 checksums.
This is to be preferred because:
a) the build may occur offline, causing it to fail
b) plain http is used by the build system for downloading
There is no drawback here because the standard sound packs are included in
the Asterisk source tarball already.
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>
- patches refreshed
- menuselect is bootstrapped from main bootstrap script now, extra call
removed
- drop a module that was removed upstream for being incomplete
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- patches refreshed
- menuselect is bootstrapped from main bootstrap script now, extra call
removed
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Despite all previous efforts chan-lantiq is not built by the build bots.
Checking the logs of a target build reveals that the chan-lantiq builds are
not even attempted.
During the target builds CONFIG_ALL is not set, meaning no regular package
gets selected. CONFIG_ALL_NONSHARED on the other hand is set. But
chan-lantiq still will not be selected, because it depends on "asterisk",
meaning asterisk needs to be selected first for chan-lantiq to become
available.
This commit changes the asterisk depend to "+asterisk", meaning asterisk
will be selected if chan-lantiq is selected.
This was tested with the SDK. A seed config file was added with the
following:
CONFIG_ALL_NONSHARED=y
Running menuselect showed that now chan-lantiq is selected
automatically. This should fix the problem.
The problem with "+asterisk" is that this breaks the asterisk menus for all
asterisk plugins/utilities that follow chan-lantiq alphabetically. To
address this put the chan-lantiq modules into their own sub menu "Telephony
Lantiq". This is not nice, but the alternative would be to rename the
packages to something like asterisk13-z-chan-lantiq. This would make it
harder to find the packages. Maybe somebody has a better idea in the
future.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
chan-lantiq currently is still not built by the build bots. Split the
package in two, one for Asterisk 13, the other for 15, to avoid a VARIANT
build. Maybe the build bots do not support nonshared VARIANT builds.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Tidy up the flags passed on to FS build system for Perl and Python
modules. Some flags seem a bit too random to include - this commit
removes them.
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>
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>
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>
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>
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>
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>
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>
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>
mod-avformat is only built when mod-avcodec is selected. baresip sets it
up like that in mk/modules.mk:
ifneq ($(USE_AVCODEC),)
MODULES += avcodec
ifneq ($(USE_AVFORMAT),)
MODULES += avformat
endif
endif
This commit updates the mod-avformat DEPENDS accordingly.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
There are two pulseaudio packages, pulseaudio-daemon and
pulseaudio-daemon-avahi. Both provide pulseaudio. Depend on pulseaudio
so the user may choose which one to install.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Use explicit ident string ("siproxd") instead of NULL, as the latter is
not guaranteed to prepend the program name (e.g. unspecified in POSIX),
and may result in syslog messages identified only by PID.
Use consistent facility (LOG_DAEMON) across openlog() and syslog() calls.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Explain default configuration options and potential firewall settings.
Provide examples of using documented siproxd configuration directives.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Switch to using callback functions for UCI config processing, and remove
the unnecessary scan_interfaces() call together with related code.
Instead of explicitly handling every possible siproxd config option, use
callbacks to deal with those defined in the UCI config file, and directly
handle only selected options with desired default values. This shrinks
the init code by ~3.5 KB and simplifies updating to future siproxd
versions with new options.
(Note: this change exposed some long-standing, broken aspects of UCI
callback handling, fixed in https://github.com/openwrt/openwrt/pull/805.)
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
- The main package does not actually depend on libpopt. Only the utility
smsq does. This commit reflects that in the dependencies.
- libxslt is only used if generating the XML documentation, which this
package does not use. So remove the bogus dependency.
- app-sms does not depend on libpopt either. It has another dependency
on libstdcpp, which is already covered by the main package. This removes
both dependencies.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
- The main package does not actually depend on libpopt. Only the utility
smsq does. This commit reflects that in the dependencies.
- libxslt is only used if generating the XML documentation, which this
package does not use. So remove the bogus dependency.
- app-sms does not depend on libpopt either. It has another dependency
on libstdcpp, which is already covered by the main package. This removes
both dependencies.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Currently libstdc++ is hardcoded. Change that and use whatever standard
C++ lib has preference.
Note: Two modules, event_zmq and v8, do not compile against libuClibc++.
For them to be available libstdcpp needs to have preference.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The module is never attempted to build in the regular buildbot package
cycle. Stick back the nonshared flag to get at least some log during
the target build cycle.
This also updates the dependency on kmod-ltq-vmmc to be selective (+).
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The module list is necessary, unfortunately. But having working
PKG_CONFIG_DEPENDS is nice and the list rarely needs updating.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The module and util lists are necessary, unfortunately. But having
working PKG_CONFIG_DEPENDS is nice and the lists rarely need updating.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Remove the hack. Instead just call make with .lastclean and afterward
make menuselect again. If .lastclean was not removed by menuselect this
will not do anything, which is nice.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The module and util lists are necessary, unfortunately. But having
working PKG_CONFIG_DEPENDS is nice and the lists rarely need updating.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Remove the hack. Instead just call make with .lastclean and afterward
make menuselect again. If .lastclean was not removed by menuselect this
will not do anything, which is nice.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Previous revert only works when libstdcpp is the default C++ lib. To
make the compile work in all scenarios LIBS needs to be defined and
MAKE_FLAGS are required instead of MAKE_VARS, otherwise the included
variables are overridden.
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>