Ubuntu 25.04+ replaced GNU coreutils with uutils coreutils, a Rust-based
reimplementation of Unix core utilities. These are different projects
with the same package name:
- GNU coreutils 9.x (C) - Ubuntu ≤24.04
- uutils coreutils 0.x (Rust) - Ubuntu ≥25.04
The uutils comm doesn't recognize sort output as sorted, causing
"comm: file is not in sorted order" errors.
Replace comm patterns with:
- grep -vxFf for set difference (lines in B but not in A)
- sort | uniq -d for finding duplicates
These alternatives don't depend on comm, ensuring compatibility
with both GNU and uutils coreutils.
* fix(rootfs): pass GIT_FIXED_WORKDIR inline to fetch_from_repo
Instead of using 'export GIT_FIXED_WORKDIR' and then 'unset' after,
pass the variable inline to the fetch_from_repo call. This ensures
the variable only exists in the context of that specific command
and doesn't leak into subsequent calls.
This follows the same pattern used in uboot-git.sh and kernel-git.sh.
---------
Co-authored-by: Viacheslav Bocharov <adeep@lexina.in>
Update all copyright notices in shell scripts from 2025 to 2026.
## Changes
- **Igor Pecovnik**: 2013-2025 → 2013-2026 (129 files)
- **Ricardo Pardini**: 2023-2025 → 2023-2026, 2020-2025 → 2020-2026 (5 files)
## Additional Improvements
Also updated the backtitle in `lib/functions/configuration/interactive.sh`:
- Changed title from "Armbian building script" to "Armbian Linux build framework"
- Removed docs link for cleaner display
- Uses dynamic year calculation with separate declaration (fixes shellcheck SC2155)
Problem: armbian-base-files artifact for jammy fails to build because
apt_find_upstream_package_version_and_download_url() looks for 'jammy-updates'
in https://github.armbian.com/base-files.json, but only 'jammy' key exists.
Root cause:
- For Ubuntu LTS (focal, jammy), code sets package_download_release to '${RELEASE}-updates'
- JSON file from github.armbian.com only has base release keys (jammy, noble, etc)
- jq query returns null for 'jammy-updates'
- Artifact excluded from build matrix after 10 retries
Solution: Add fallback logic
- First try with '-updates' suffix (jammy-updates)
- If not found and release ends with '-updates', retry with base release (jammy)
- This allows using base release data when -updates is not available
Impact:
- Fixes jammy base-files artifact build
- Allows jammy images to build (they depend on this artifact)
- Maintains preference for -updates when available
- No impact on other releases (Debian, non-LTS Ubuntu)
* sunxi-6.18: make the mess even worse
* fixing one of megis patches and add sunxi 32bit to the mess
* rewrite against 6.18
* fix media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch
* fix media-sun6i-csi-implement-vidioc_enum_framesizes.patch
* fix misc-modem-power-Power-manager-for-modems.patch
* Fix usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch, include rewrite
* fix mmc-sunxi-mmc-Remove-runtime-PM.patch, two hunks no longer apply
* re-extract all of megis patches
* remove unneeded branch
* add note to disabled patch
* auto-generated, out of date
* drop megous drm patches in favor of Jernej's work. disable broken patches
* disable patch which breaks compilation for armhf
* disable breaking patch, rewrite everything
* remove patches unrelated to sunxi family
* fix spi dev compatible patch
* fix tsc2007 patch
* drop mainlined patch, adjust x96 mate T95 eth sd card hack
* remove upstreamed patch
* re-enable no longer broken
* another rewrite to align stuff properly
* adjust various comments in series.conf
* recover lost overlays
* uew5622: fix compilation against Linux 6.18
* fix Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch
* adjust patch subject to make sense
* restore fixup creation
restore overlay prefix on opiz2
this needs to be properly sorted at some point
* bump to 6.18.1
sunxi and sunxi64 build just fine
* fix and re-enable drv-mfd-axp20x-add-sysfs-interface.patch
* rewrite patches
- Created patch/misc/rtw88/6.18/ directory with upstream driver patches
- Removed obsolete kernel 6.16 reference from patch conditions
- Updated comment to clarify that RF path detection fix is only needed
for kernel 6.1.x (upstreamed in 6.18+)
This fixes RTL8822CS WiFi initialization failures on kernel 6.18 where
the driver was not being properly patched due to missing version directory.
Fixes SDIO timeout errors during chip initialization.
Use $DOCKER_INFO to check for podman vs dockerd, and conditionally
`exec` and `dev` volume options, which are needed on podman but not
allowed on dockerd.
It hasn't been an issue for Docker because their defaults didn't
conflict, but Podman mounts volumes with nodev (and formerly noexec) by
default, which would break the build. Adding `dev` and `exec` to the
volume mount options ensures the needed setting whatever the defaults.
- stops after artifacts-reduced and adds kernels.ndjson and uboots.njdson via jq
- if one runs `./compile.sh inventory-artifacts` we shall get:
- `output/info/kernels.ndjson`: one line for each kernel build
- `output/info/uboots.ndjson`: one line for each u-boot build
- this is meant as base for other tooling that acts "for each kernel" or "for each u-boot" such as patch/config rewrites, etc
- cli-jsoninfo: better kernels.ndjson; new kernels-duplicate-config.json
- so we can detect mistakes ref LINUXCONFIG
- maybe one day the "Rewrite Kernel Config" GHA can re-use kernels.ndjson
- previous commit introduced targets-all-kernels.yaml, so one can run
- `./compile.sh inventory-artifacts TARGETS_TEMPLATE=targets-all-kernels.yaml`
- Enable bootscript templating using `envsubst`.
- Add generic bootscript.
- Fix: `test` does not support `==`, but deceptively returns `true` in case you use it.
- De-duplicate kernel commandline console options.