Skip to content

Commit 5365fcd

Browse files
anuar2kKucmasz
authored andcommitted
Anjay 3.12.0
1 parent e11c47b commit 5365fcd

File tree

775 files changed

+10327
-1890
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

775 files changed

+10327
-1890
lines changed

.dockerignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ posix-config.h
3434
anjay-*.cmake
3535
Doxyfile
3636
/doc/sphinx/source/conf.py
37-
tests/integration/framework/nsh-lwm2m/pymbedtls/build/
37+
tools/test-framework-tools/pymbedtls/build/
3838

3939
# other
4040
Makefile
@@ -54,7 +54,7 @@ __pycache__/
5454
*.orig
5555
*.egg-info
5656
*.pyc
57-
/tests/integration/framework/nsh-lwm2m/coap/pymbedtls*
57+
/tools/test-framework-tools/pymbedtls*
5858
compile_commands.json
5959

6060
/avs_commons/install

.github/workflows/anjay-tests.yml

Lines changed: 73 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#
@@ -8,12 +8,13 @@
88
name: Anjay tests
99
on: [push]
1010
jobs:
11-
ubuntu2004-compilers-test:
11+
ubuntu2204-compilers-test:
1212
runs-on: ubuntu-latest
13-
container: avsystemembedded/anjay-travis:ubuntu-20.04-2.2
13+
container: avsystemembedded/anjay-travis:ubuntu-22.04-3.0
1414
env:
1515
CC: ${{ matrix.CC }}
1616
CXX: ${{ matrix.CXX }}
17+
MEM_CHECK_TOOL: ${{ matrix.MEM_CHECK_TOOL }}
1718
steps:
1819
# NOTE: workaround for https://github.com/actions/checkout/issues/760
1920
- run: git config --global safe.directory '*'
@@ -23,25 +24,39 @@ jobs:
2324
submodules: recursive
2425
- run: apt-get update
2526
- run: apt-get -y install $CC $CXX
26-
- run: ./devconfig --with-valgrind --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF
27-
- run: env CC=gcc LC_ALL=C.UTF-8 make -j
28-
- run: env CC=gcc LC_ALL=C.UTF-8 make check
27+
- run: ./devconfig $MEM_CHECK_TOOL --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_IPV6=OFF
28+
- run: |
29+
. /venv/bin/activate
30+
env CC=gcc LC_ALL=C.UTF-8 make -j
31+
- run: |
32+
. /venv/bin/activate
33+
env CC=gcc LC_ALL=C.UTF-8 make check
2934
strategy:
3035
fail-fast: false
3136
matrix:
3237
include:
33-
- CC: gcc-8
34-
CXX: g++-8
35-
- CC: gcc-9
36-
CXX: g++-9
37-
- CC: gcc-10
38-
CXX: g++-10
39-
- CC: clang-10
40-
CXX: clang++-10
38+
- CC: gcc-11
39+
CXX: g++-11
40+
MEM_CHECK_TOOL: --with-valgrind
41+
- CC: gcc-12
42+
CXX: g++-12
43+
MEM_CHECK_TOOL: --with-valgrind
44+
- CC: clang-11
45+
CXX: clang++-11
46+
MEM_CHECK_TOOL: --with-valgrind
47+
- CC: clang-12
48+
CXX: clang++-12
49+
MEM_CHECK_TOOL: --with-valgrind
50+
- CC: clang-13
51+
CXX: clang++-13
52+
MEM_CHECK_TOOL: --with-valgrind
53+
- CC: clang-14
54+
CXX: clang++-14
55+
MEM_CHECK_TOOL: --without-memcheck # NOTE: workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1758782
4156

42-
ubuntu2204-compilers-test:
57+
ubuntu2404-compilers-test:
4358
runs-on: ubuntu-latest
44-
container: avsystemembedded/anjay-travis:ubuntu-22.04-2.2
59+
container: avsystemembedded/anjay-travis:ubuntu-24.04-3.0
4560
env:
4661
CC: ${{ matrix.CC }}
4762
CXX: ${{ matrix.CXX }}
@@ -55,35 +70,39 @@ jobs:
5570
submodules: recursive
5671
- run: apt-get update
5772
- run: apt-get -y install $CC $CXX
58-
- run: ./devconfig $MEM_CHECK_TOOL --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF
59-
- run: env CC=gcc LC_ALL=C.UTF-8 make -j
60-
- run: env CC=gcc LC_ALL=C.UTF-8 make check
73+
- run: ./devconfig $MEM_CHECK_TOOL --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_IPV6=OFF
74+
- run: |
75+
. /venv/bin/activate
76+
env CC=gcc LC_ALL=C.UTF-8 make -j
77+
- run: |
78+
. /venv/bin/activate
79+
env CC=gcc LC_ALL=C.UTF-8 make check
6180
strategy:
6281
fail-fast: false
6382
matrix:
6483
include:
65-
- CC: gcc-11
66-
CXX: g++-11
67-
MEM_CHECK_TOOL: --with-valgrind
6884
- CC: gcc-12
6985
CXX: g++-12
7086
MEM_CHECK_TOOL: --with-valgrind
71-
- CC: clang-11
72-
CXX: clang++-11
87+
- CC: gcc-13
88+
CXX: g++-13
7389
MEM_CHECK_TOOL: --with-valgrind
74-
- CC: clang-12
75-
CXX: clang++-12
90+
- CC: gcc-14
91+
CXX: g++-14
7692
MEM_CHECK_TOOL: --with-valgrind
77-
- CC: clang-13
78-
CXX: clang++-13
93+
- CC: clang-17
94+
CXX: clang++-17
95+
MEM_CHECK_TOOL: --with-valgrind
96+
- CC: clang-18
97+
CXX: clang++-18
98+
MEM_CHECK_TOOL: --with-valgrind
99+
- CC: clang-19
100+
CXX: clang++-19
79101
MEM_CHECK_TOOL: --with-valgrind
80-
- CC: clang-14
81-
CXX: clang++-14
82-
MEM_CHECK_TOOL: --without-memcheck # NOTE: workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1758782
83102

84103
rockylinux9-compilers-test:
85104
runs-on: ubuntu-latest
86-
container: avsystemembedded/anjay-travis:rockylinux-9-2.2
105+
container: avsystemembedded/anjay-travis:rockylinux-9-3.0
87106
env:
88107
CC: ${{ matrix.CC }}
89108
CXX: ${{ matrix.CXX }}
@@ -98,9 +117,13 @@ jobs:
98117
- run: dnf install -y $CC
99118
# Solve issues with EPERM when running dumpcap
100119
- run: setcap '' $(which dumpcap)
101-
- run: ./devconfig --with-valgrind --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF
102-
- run: env CC=gcc LC_ALL=C.UTF-8 make -j
103-
- run: env CC=gcc LC_ALL=C.UTF-8 make check
120+
- run: ./devconfig --with-valgrind --without-analysis -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_IPV6=OFF
121+
- run: |
122+
. /venv/bin/activate
123+
env CC=gcc LC_ALL=C.UTF-8 make -j
124+
- run: |
125+
. /venv/bin/activate
126+
env CC=gcc LC_ALL=C.UTF-8 make check
104127
strategy:
105128
fail-fast: false
106129
matrix:
@@ -110,21 +133,16 @@ jobs:
110133
- CC: clang
111134
CXX: clang++
112135

113-
macOS-compilers-test:
114-
runs-on: macos-14
115-
env:
116-
CC: ${{ matrix.CC }}
117-
CXX: ${{ matrix.CXX }}
118-
COMPILER_VERSION: ${{ matrix.COMPILER_VERSION }}
119-
MEM_CHECK_TOOL: ${{ matrix.MEM_CHECK_TOOL }}
136+
macOS-test:
137+
runs-on: "${{ matrix.RUNNER }}"
120138
steps:
121139
# NOTE: v2 requires Git 2.18 for submodules, it's not present in the image
122140
- uses: actions/checkout@v1
123141
with:
124142
submodules: recursive
125143
- run: brew update
126144
# NOTE: try the brew install command twice to work around "brew link" errors
127-
- run: INSTALL_CMD="brew install python3 openssl ${COMPILER_VERSION:+$COMPILER_VERSION}"; $INSTALL_CMD || $INSTALL_CMD
145+
- run: INSTALL_CMD="brew install python3 openssl"; $INSTALL_CMD || $INSTALL_CMD
128146
# NOTE: Some tests don't pass on mbedTLS 3.6.2 now, so we need to install an older version
129147
# Homebrew only specifiers major version of mbedTLS, so let's pin the version to 3.6.0 manually
130148
- run: curl -f https://raw.githubusercontent.com/Homebrew/homebrew-core/219dabf6cab172fb8b62b4d8598e016e190c3c20/Formula/m/mbedtls.rb > /tmp/mbedtls.rb
@@ -140,23 +158,19 @@ jobs:
140158
- run: brew install embedded/mbedtls/mbedtls
141159
- run: brew pin mbedtls
142160
# NOTE: The above command may have installed a new version of Python, that's why we launch it weirdly
143-
- run: /usr/bin/env python3 -m pip install -r requirements.txt --break-system-packages
144-
- run: env JAVA_HOME="$JAVA_HOME_17_X64" ./devconfig $MEM_CHECK_TOOL --without-analysis --no-examples -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF -DMBEDTLS_ROOT_DIR=/opt/homebrew/opt/mbedtls
145-
- run: LC_ALL=en_US.UTF-8 make -j
146-
- run: LC_ALL=en_US.UTF-8 make check
161+
# NOTE: We manualy create env since devconfig does not use /usr/bin/env python3
162+
- run: /usr/bin/env python3 -m venv venv
163+
- run: env JAVA_HOME="$JAVA_HOME_17_X64" ./devconfig --with-asan --without-analysis --no-examples -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_IPV6=OFF -DMBEDTLS_ROOT_DIR=/opt/homebrew/opt/mbedtls
164+
- run: |
165+
. venv/bin/activate
166+
LC_ALL=en_US.UTF-8 make -j
167+
- run: |
168+
. venv/bin/activate
169+
LC_ALL=en_US.UTF-8 make check
147170
strategy:
148171
fail-fast: false
149172
matrix:
150173
include:
151-
- CC: /opt/homebrew/opt/gcc@14/bin/gcc-14
152-
CXX: /opt/homebrew/opt/gcc@14/bin/g++-14
153-
COMPILER_VERSION: gcc@14
154-
MEM_CHECK_TOOL: --without-memcheck
155-
# NOTE: llvm is temporarily disabled due to problem with header search paths
156-
# - CC: /opt/homebrew/opt/llvm@20/bin/clang
157-
# CXX: /opt/homebrew/opt/llvm@20/bin/clang++
158-
# COMPILER_VERSION: llvm@20
159-
# MEM_CHECK_TOOL: --with-asan
160-
- CC: cc
161-
CXX: c++
162-
MEM_CHECK_TOOL: --with-asan
174+
- RUNNER: macos-14
175+
- RUNNER: macos-15
176+
- RUNNER: macos-26

.github/workflows/coverity.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#
@@ -12,7 +12,7 @@ on:
1212
jobs:
1313
coverity:
1414
runs-on: ubuntu-latest
15-
container: avsystemembedded/anjay-travis:ubuntu-22.04-2.2
15+
container: avsystemembedded/anjay-travis:ubuntu-22.04-3.0
1616
env:
1717
# NOTE: These need to be configured in GitHub Actions GUI
1818
COVERITY_EMAIL: ${{ secrets.COVERITY_EMAIL }}
@@ -29,7 +29,7 @@ jobs:
2929
bash -c 'cd coverity_tool && \
3030
wget https://scan.coverity.com/download/linux64 --post-data "token=$COVERITY_SCAN_TOKEN&project=AVSystem%2FAnjay" -O coverity_tool.tgz && \
3131
tar xf coverity_tool.tgz'
32-
- run: ./devconfig --without-analysis -DWITH_URL_CHECK=OFF -DWITH_NESTED_FUNCTION_MUTEX_LOCKS=OFF -DWITH_IPV6=OFF
32+
- run: ./devconfig --without-analysis -DWITH_NESTED_FUNCTION_MUTEX_LOCKS=OFF -DWITH_IPV6=OFF
3333
- run: env LC_ALL=C.UTF-8 ./coverity_tool/cov-analysis*/bin/cov-build --dir cov-int make
3434
- run: tar zcf cov-int.tgz cov-int
3535
- run: |

.gitignore

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ anjay-*.cmake
3636
Doxyfile
3737
/doc/sphinx/source/conf.py
3838
tests/integration/run_tests.sh
39-
tests/integration/framework/nsh-lwm2m/pymbedtls/build/
4039

4140
# other
4241
Makefile
@@ -57,7 +56,6 @@ __pycache__/
5756
*.egg-info
5857
*.pyc
5958
*.cache
60-
/tests/integration/framework/nsh-lwm2m/coap/pymbedtls*
6159
compile_commands.json
6260

6361
/avs_commons/install
@@ -72,3 +70,12 @@ examples/*-build
7270

7371
# Anjay persistence files
7472
*-persistence.dat
73+
74+
# Python venv
75+
/venv/
76+
build/
77+
dist/
78+
*.egg-info/
79+
80+
# py-build-cmake cache
81+
.py-build-cmake_cache

.gitmodules

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
[submodule "tests/integration/framework/nsh-lwm2m/pymbedtls/src/pybind11"]
2-
path = tests/integration/framework/nsh-lwm2m/pymbedtls/src/pybind11
3-
url = https://github.com/pybind/pybind11.git
4-
ignore = untracked
5-
[submodule "tests/integration/framework/nsh-lwm2m/powercmd"]
6-
path = tests/integration/framework/nsh-lwm2m/powercmd
7-
url = https://github.com/dextero/powercmd.git
81
[submodule "deps/avs_commons"]
92
path = deps/avs_commons
103
url = https://github.com/AVSystem/avs_commons.git

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# Changelog
22

3+
## 3.12.0 (January 30th, 2026)
4+
5+
### BREAKING CHANGES
6+
7+
- PEP 668 was adopted. Using Python based tools requires a virtual environment
8+
and `devconfig` script ensures it's activated.
9+
- Most tools from `tests/integration/framework` were extracted
10+
into `tools/test-framework-tools` directory which is being installed
11+
in venv by `devconfig`
12+
13+
### Bugfixes
14+
- Fixed crash in avs_coap when block transfers are disabled and outgoing
15+
message does not fit into the external output buffer.
16+
- (commercial version only) Fixed a bug that made it impossible to set a Master
17+
Secret which length was anything other than 16 bytes (OSCORE).
18+
- Fixed avs_coap tests for GCC 15
19+
20+
### Features
21+
- Added traffic interceptor usage to demo application.
22+
- (commercial version only) Made it possible to set the maximum length of the
23+
Master Secret and Master Salt using the AVS_COAP_OSCORE_MASTER_SECRET_SIZE
24+
and AVS_COAP_OSCORE_MASTER_SALT_SIZE options, respectively.
25+
- Removed experimental tags from server connection status API, IPSO objects v2
26+
API, Software Management object API, CoAP Download retry API and
27+
Confirmable Notification status callback API.
28+
29+
### Improvements
30+
- Reworked the help menu in Anjay Demo.
31+
- (commercial version only) Added support for running PKCS11 integration tests
32+
with OpenSSL as (D)TLS backend.
33+
- Migrated pymbedtls build system to pyproject.toml.
34+
335
## 3.11.0 (September 26th, 2025)
436

537
### BREAKING CHANGES

CMakeLists.txt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#
@@ -8,7 +8,7 @@
88
cmake_minimum_required(VERSION 3.16)
99

1010
project(anjay C)
11-
set(ANJAY_VERSION "3.11.0" CACHE STRING "Anjay library version")
11+
set(ANJAY_VERSION "3.12.0" CACHE STRING "Anjay library version")
1212
set(ANJAY_BINARY_VERSION 1.0.0)
1313

1414
set(ANJAY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
@@ -22,6 +22,11 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
2222

2323
include(CheckFunctionExists)
2424

25+
if(WITH_DEMO OR WITH_INTEGRATION_TESTS)
26+
# ensure Python venv is active
27+
include(cmake/requirePython3venv.cmake)
28+
endif()
29+
2530
# On Linux, one needs to link libdl to use dlsym(). On BSD, it is not necessary,
2631
# and even harmful, since libdl does not exist.
2732
set(CMAKE_REQUIRED_INCLUDES "dlfcn.h")
@@ -617,7 +622,7 @@ if(WITH_TEST)
617622
add_custom_target(check)
618623
add_custom_target(anjay_unit_check)
619624
add_dependencies(check anjay_unit_check)
620-
625+
621626
# anjay_test
622627
add_executable(anjay_test EXCLUDE_FROM_ALL
623628
$<TARGET_PROPERTY:anjay,SOURCES>
@@ -737,15 +742,6 @@ if(WITH_TEST)
737742
toc_check
738743
config_log_check)
739744

740-
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
741-
option(WITH_LICENSE_TEST "Enable checking if all files have the license boilerplate" OFF)
742-
if(WITH_LICENSE_TEST)
743-
add_custom_target(anjay_license_check
744-
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/license_headers.py"
745-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
746-
add_dependencies(anjay_unit_check anjay_license_check)
747-
endif()
748-
endif()
749745

750746
# Symbol validation
751747
add_custom_target(symbols_check COMMAND ${CMAKE_CTEST_COMMAND} -R "'^test_.*_symbols$$'" --output-on-failure)

CONTRIBUTING.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
..
2-
Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
2+
Copyright 2017-2026 AVSystem <avsystem@avsystem.com>
33
AVSystem Anjay LwM2M SDK
44
All rights reserved.
55

0 commit comments

Comments
 (0)