[tinydtls] Makefile: Updated PKG_URL
The tinydtls repository has moved from Eclipse Gerrit to GitHub [1].
PKG_URL now points to the new direction and PKG_VERSION was updated
to the HEAD of the develop branch.
[1] https://github.com/eclipse/tinydtls.git
When WITH_RIOT_GNRC is set in CFLAGS, tinydtls will use a more
compact address representation based on ipv6_addr_t instead of
POSIX-style sockaddr_in6 to identify sessions (cf. struct session_t).
When posix_sockets are used (as in libcoap, e.g.), the POSIX
address representation should be selected automatically for
consistency. This change adds -DWITH_RIOT_GNRC to CFLAGS only
when the module posix_sockets is not selected.
The build system contains several instances of
INCLUDES += -I$(RIOTBASE)/sys/posix/include
This is bypassing the module management system, by directly accesing
headers without depending on a module. The module is the posix module.
That line is also added when one of the posix_* modules is requested.
According to the docs, the posix module provides headers only, but in
reality there is also inet.c.
This patch:
- Moves `inet.c` into `posix_inet`, leaving `posix` as a headers-only
module.
- Rename `posix` as `posix_headers` to make it clear the module only
includes headers.
- Makes `posix_*` modules depend on `posix_headers`, thus removing the
explicit `INCLUDES+=...` in `sys/Makefile.include`.
- Ocurrences of `INCLUDES+=...` are replaced by an explicit dependency
on `posix_headers`.
Once the repo is downloaded, the version is not checked gain. This
means that even if a package's Makefile is touched, that will only
cause a rebuild of the previously downloaded version. For packages
that are normally not deleted, like edbg, this renders PKG_VERSION
bumps ineffective, unless the user manually deletes the repo
directory.
This patch fixes that by always checking that the repo is at the
right commit.
If module log is used, log.h should be included. Otherwise, it might lead to compilation problems since LOG_ERROR macro isn't know in expansion of LWIP_PLATFORM_ASSERT macro.
- copy basic objects from client implementation
- fix pkg warnings
- use lwm2m_strdup instead of strdup
- fix alignment problem in lwm2m data struct
- add fix of acc_ctrl object read
It is not 100% clear if 4.12 is the last version the softdevice is able
to interact with, but newer kernel versions than 4.12 definitely
don't work (we tried 4.15 on Ubuntu 18.04 and 4.20 on a quite recent
Arch).
The reason I believe it's the 4.12 that last worked is that in the
documentation of the nRF5 SDK it is mentioned for something called
"legacy mode" [1]. However, we are using the nRF5 *IoT* SDK which
doesn't mention this legacy mode at all.
I don't know if we can update the `pkg` to the other SDK, so I just
updated the documentation accordingly for now.
[1]: https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/group__ble__6lowpan__config?9932#ga5285fd3eaf403092286f607cd66850f3
This is just a compatibility issue waiting to happen as soon as there
is support for a more standard-compliant implementation of BLE (like
e.g. NimBLE ;-)).