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>
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>
On some 32 bit targets dahdi-linux currently fails to build.
Examples:
ERROR: "__divdi3" [/builder/shared-workdir/build/sdk/build_dir/target-powerpc_8540_musl/linux-mpc85xx_generic/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__udivdi3" [/builder/shared-workdir/build/sdk/build_dir/target-powerpc_8540_musl/linux-mpc85xx_generic/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__moddi3" [/builder/shared-workdir/build/sdk/build_dir/target-powerpc_8540_musl/linux-mpc85xx_generic/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
ERROR: "__divdi3" [/builder/shared-workdir/build/sdk/build_dir/target-powerpc_8540_musl/linux-mpc85xx_generic/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
or
ERROR: "__aeabi_ldivmod" [/store/buildbot/slave/shared-workdir/build/sdk/build_dir/target-arm_arm1176jzf-s+vfp_musl_eabi/linux-bcm27xx_bcm2708/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__aeabi_uldivmod" [/store/buildbot/slave/shared-workdir/build/sdk/build_dir/target-arm_arm1176jzf-s+vfp_musl_eabi/linux-bcm27xx_bcm2708/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__aeabi_ldivmod" [/store/buildbot/slave/shared-workdir/build/sdk/build_dir/target-arm_arm1176jzf-s+vfp_musl_eabi/linux-bcm27xx_bcm2708/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
Problem was reported to upstream already by third party ([1]). Patch
attached to bug report is not sufficient.
This commit adds a patch from PLD Linux ([2]) to address the build
failures.
[1] https://issues.asterisk.org/jira/browse/DAHLIN-371
[2] https://github.com/pld-linux/dahdi-linux/blob/master/math64.patch
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>
Currently CI doesn't work, because the dependencies from the packages
repo are not available.
<snip>
WARNING: No feed for package 'libopenldap' found
WARNING: No feed for package 'libidn2' found
WARNING: No feed for package 'libssh2' found
<snip>
This commit adds the packages repo.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
We like to use "kamailio-5.x:" and "asterisk-16.x:" in commit message
subject lines. So relax the regex for it to allow the dots.
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>
This commit provides compatibility with kernel 5.4.
Except for the version bump this commit updates the HFC-S PCI driver to
not rely on the macro "dahdi_pci_module" anymore, because it has been
removed upstream in commit 4af6f69.
Also, a patch is added that makes the include of "<linux/pci-aspm.h>"
conditional on the kernel version, because starting with kernel 5.4 this
header has been removed and its contents merged into "pci.h".
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This adds CircleCI as Continous Integration. It will provide compile
test against ath79 target and together with it, it checks if the commit
starts with the package name and it checks if the Signed-off-by matches
the author of the commit.
For example, it can avoid mistakes with broken patches, mismatched changes.
This comes from packages feed and it is being used there and also in
LuCI repository.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
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>