Commit graph

18 commits

Author SHA1 Message Date
Sebastian Kemper
985365c3f2 asterisk-16.x: sort out lua detection
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>
2020-05-16 21:00:25 +02:00
Sebastian Kemper
e44fb87cc7 asterisk-16.x: update init and configuration
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>
2020-05-14 21:56:52 +02:00
Sebastian Kemper
54d0fb32eb asterisk-16.x: bump to 16.10.0
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>
2020-05-14 21:48:45 +02:00
Sebastian Kemper
357949967f asterisk-16.x: fix compile with PKG_ASLR_PIE
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>
2020-01-11 23:44:40 +01:00
Sebastian Kemper
7e41004b1e asterisk-16.x: add fixes for AST-2019-006 and 007
https://downloads.asterisk.org/pub/security/AST-2019-006.html
https://downloads.asterisk.org/pub/security/AST-2019-007.html

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2019-11-22 18:03:54 +01:00
Sebastian Kemper
c2bfc7145f asterisk-16.x: remove libxml2 hacks
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>
2019-10-28 20:40:05 +01:00
Jiri Slachta
3fd4eed6a2 asterisk-16.x: version bump to 16.6.1
Signed-off-by: Jiri Slachta <jiri@slachta.eu>
2019-10-22 23:56:12 +02:00
Sebastian Kemper
d9b06a0b21 asterisk-16.x: bump to 16.6.0
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>
2019-10-11 18:17:41 +02:00
Sebastian Kemper
87eeb0c2a7 asterisk-16.x: amend config file handling
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>
2019-10-02 20:56:04 +02:00
Sebastian Kemper
0b98458466 asterisk-16.x: add patch for AST-2019-004
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>
2019-09-05 19:42:43 +02:00
micmac1
9b90b9ea78 asterisk-16.x: update init to procd (#421)
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>
2019-07-25 09:33:06 +02:00
Sebastian Kemper
9f25a29839 asterisk-16.x: upgrade pbx-lua dep to liblua5.3
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>
2019-07-19 21:32:30 +02:00
Sebastian Kemper
de9edc8e39 asterisk-16.x: fix AST-2019-002 & AST-2019-003
https://downloads.asterisk.org/pub/security/AST-2019-002.html
https://downloads.asterisk.org/pub/security/AST-2019-003.html

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2019-07-12 20:50:35 +02:00
Sebastian Kemper
e3f1b7b959 asterisk-16.x: remove chan-phone
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>
2019-06-20 22:18:58 +02:00
Jiri Slachta
4d73f675bd
Merge pull request #422 from micmac1/ast16-mod-desc
asterisk-16.x: update module descriptions
2019-05-06 20:53:25 +02:00
Sebastian Kemper
63a8ad1755 asterisk-16.x: disable semaphores only on uClibc
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>
2019-05-01 20:52:08 +02:00
Sebastian Kemper
1de2464d5e asterisk-16.x: update module descriptions
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>
2019-05-01 20:32:51 +02:00
Sebastian Kemper
6cdf80bd46 asterisk-16.x: add Asterisk 16
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>
2019-05-01 11:29:49 +02:00