Some commands have been renamed since version 1.9.0 and 1.10.0.
To still provide compatibility with older debuggers, allow one to
override the firmware version assumed. A dependency for packaging
was added for comparing version numbers.
The tool would always exit if no probes are detected, even if `--port`
was provided. By making this assertion conditional, it becomes
possible to override the port in any case.
Use cases for this is running the BMP externally, and connecto to it
via ser2net, for example.
Per conventions:
- Put main code in a function.
- Move argument parsing to separate function to not pollute global
scope. This does mean that all invocations now need `args` as an
additional argument.
Python 3.12 removed the `distutils` package, which is only used for
checking if GDB is available on PATH.
The `shutil.which` method does the same, and is available since
Python 3.3.
It turns out that the ID mechanics of docker are even more crazy than
realized before: On Linux (x86_64) they use a different SHA256 when
referring to a locally installed image than when referring to the
same image at dockerhub. On Mac OS (Apple Silicon), the use the repo
SHA256 also when referring to the local image.
Instead of increasing the complexity of the current solution even more
by covering both cases, we now use
`docker.io/riot/riotbuild@sha256:<SHA256_OF_DOCKERHUB_IMAGE>` to refer
to a specific docker image, which hopefully works across systems.
Instead of pulling the image explicitly, we now can rely on docker
to do so automatically if the pinned image is not found locally. As
a result, the knob to disable automatic pulling has been dropped.
Fixes https://github.com/RIOT-OS/RIOT/issues/20853
This re-adds `RIOT_MCU` as alias for `RIOT_CPU` and marks it as
deprecated. That should make life easier for downstream apps that may
still use `RIOT_CPU`.
Adding this macro in the definition of a macro causes a warning about
the deprecation to be emitted when used (and a build failure with
`WERROR=1`). This is useful as no other means to deprecate preprocessor
macros are provided.
The macro will be defined empty for compilers that are not GCC or
clang.
This adds a `riotbuild-prefix.h` that is added to the `riotbuild.h`
and processed by Doxygen. It solves two problems:
1. The pre-defined macros where previously fully undocumented, but
may be useful to real world applications
2. It provides a place where backward compatibility aliases can be
added with a deprecation notice
This tests if the latest manifest on dockerhub matches the pinned
version. The idea is that PRs are not merged until the pinning is
fixed, so that we can ensure that `make BUILD_IN_DOCKER=1` will
always succeed with the pinned version.
The build system sanity check test script currently does not pass
shellcheck, preventing PRs improving it from getting merged.
In addition, the github annotation was broken.
This commit fixes the issues pointed out by shellcheck as well as
the Github annotation.
Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
If there is an Ethernet peripheral (periph_eth feature provided), we
can conclude that an Ethernet network interface can be provided.
Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
`doas` doesn't set `SUDO_USER`, but `DOAS_USER`. This populates
`SUDO_USER` with `DOAS_USER` if it is empty, so the script works with
both doas and sudo.
Either GDB or pygdbmi changed behavior to trim off whitespace following
the message, resulting in the `\\n` at the end of the regex no longer
matching. This replaces the `\\n` with `\s*` to match both old and new
output.
Fixes: https://github.com/RIOT-OS/RIOT/issues/20604