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>