This fixes detection of the config option for SpacemiT K1 which is `CONFIG_SOC_SPACEMIT_K1X`.
Otherwise it would not find it because it includes a '1'.
- this avoids trouble building certain older versions with binman
- as it tries to `os.path.join(os.getenv('HOME'), 'bin')` and gets a `None` and dies
- naming names: `tinkerboard` & `xt-q8l-v10` (BOARDFAMILY=rockchip), which _actually use_ binman & 22.04 combo
- otherwise:
```
fsck.ext4 -a -C0 /dev/mmcblk0p1
/dev/mmcblk0p1 has unsupported feature(s): FEATURE_C12
e2fsck: Get a newer version of e2fsck!
```
- `orphan_file` can only be disabled on recent-enough e2fsprogs, thus check version and compare
Instead of having to add every new release to the list that does not support python2, inverse this if statement and only check if the build host is Debian bullseye or ubuntu jammy. Every release newer than those do not have python2. Older build hosts are unsupported.
Different build hosts have vastly different versions of setuptools and pyelftools depending on the host OS, e.g. Ubuntu 22.04 has setuptools v59 while the latest version at the time of this commit is setuptools v71.
Using Pip instead of APT to download these packages assures that all build hosts use the same version, removing some points of failures and inconsistencies.
Validates the dts/dtb file for the selected board and outputs the validation logs to the user.
This can be used when adding a new board, developing or improving a dts file. Should lead to higher quality device trees and patches overall, if used.
Will show warnings/errors if patches patch in some functionalities to a devicetree file without patching in the dt-bindings .yaml at the same time.
- `NETWORKING_STACK` can be set to `none` (in config phase, pre-extensions) to not-add any networking extensions
- keep defaulting to systemd-networkd if BUILD_MINIMAL and NetworkManager otherwise
- fix typo in extension name
- add `NETWORKING_STACK` to change-tracking
- Use resolved no matter what manages the network (networkd or NetworkManager)
- Use resolved.conf.d/ directory to set DNS as recommended by resolved itself
- In armbian-firstrun, remove config specific to mvebu64|mt7623 since this is now done by default
- Rename extensions with "net-*" prefix
- Put the extensions into their own folder
- Split off time sync packages into their own extensions to be able to be used separately
- Put their config files into directories instead of using inline `cat <<- EOF >`
- Move some other NetworkManager related stuff into the extension
- Remove unneeded steps
- Install iproute2 by default on all images (for the `ip` command)
- use Chrony with Network Manager
- use timesync with systemd-networkd
- use NetPlan with Network manager only
- move command-not-found to CLI image only
- improve firstlogin ip detection
Shellcheck errors/warnings were:
In lib/functions/rootfs/distro-agnostic.sh line 155:
display_alert "Adding to extlinux.conf" "fdtoverlays=${DEFAULT_OVERLAYS[@]}" "debug"
^--------------------^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
In lib/functions/rootfs/distro-agnostic.sh line 156:
echo " fdtoverlays ${DEFAULT_OVERLAYS[@]}" >> "$SDCARD/boot/extlinux/extlinux.conf"
^--------------------^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
In lib/functions/rootfs/distro-agnostic.sh line 193:
if [[ -n $DEFAULT_OVERLAYS && -f "${SDCARD}"/boot/armbianEnv.txt ]]; then
^---------------^ SC2128 (warning): Expanding an array without an index only gives the first element.
- `git format-patch --zero-commit` doesn't affect `index xxx...yyy` lines, only `From: `
- so use the _classy_ "use a regex with a callback" solution as git format-patch doesn't offer one
- this will make _all_ patches change when rewritten, but hopefully _for the last time_ !
- we need to preserve `index 000000000000..xxx` as zeros, which indicate new file creation, thus:
- new file creations are rewritten as `index 000000000000..111111111111`
- non-creations are rewritten as `index 111111111111..222222222222`
- this is the final version of #6455
doas is not compatible with sudo flags. The codebase was checked for
sudo-specific uses of this function, but none were found, all cases were
in the form of `sudo <command>`. Replacing it with `doas <command>`
yields the same result.