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
The egrep and fgrep commands have been deprecated since 2007. Beginning
with GNU Grep 3.8, calling these commands will now issue a warning to the
user that instead they should use grep -E and grep -F, respectively.
Beginning with doxygen 1.9.8 "Modules" are renamed to "Topics". This
patch adds the new entry to the layout file. Having both, "Modules" and
"Topics" in the layout file should generate similar output for older and
newer doxygen versions.
This lists and documents features in a machine readable form. It is
intended to be used for documentation and the build system.
Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: chrysn <chrysn@fsfe.org>
Add a python script that allows having a single YAML file as source of
truth for what features are available, and also add documentation such
as help texts and grouping to them.
This utility converts such a YAML file to a Makefile with the contents
```
FEATURES_EXISTING := \
feature_a \
feature_b \
... \
features_z \
#
```
This allows the Makefile based build system to easily check if all
provided features and all requested features do actually exist.
In addition, this also converts the YAML file to a markdown file that
documents the features. This file is then intended to be used by
Doxygen to document the provided features.
Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: chrysn <chrysn@fsfe.org>
This drops support for the legacy riscv-none-embed target triple. That
value has been incorrect since the beginning and the toolchain that
used that has been long declared obsolete and is fairly outdated.
With our CI updating the toolchain, we no longer need to check for
that.