| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
patching: keep the b4 footer after the diff out of the diff split_description_and_patch() cut the message at the last "---" line of the whole file. A single patch sent with b4 carries a footer after the diff ("---", base-commit, change-id, signature), and "b4 am" keeps it, so the footer became the diff and parsing failed with "Patch file ... has no changes". This breaks every 7.3 kernel build since #10805. Text after the diff is normal for patches taken from lore: git format-patch appends a "-- " signature, b4 send a "---" / base-commit / change-id block, and git am ignores both. Take the last separator that the patch itself follows: optional diffstat and blank lines, then a file diff. Without such a separator split at the last one, as before. Checked on all patch files under patch/: only the five 7.3 test_fortify copies parse differently (now OK), the other results are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> | 1 天前 | |
targets-compositor: add include-eos option for userspace inventory EOS userspace releases are always skipped when composing targets from the userspace inventory. That is right for images/rootfs, but base-files is needed on every release, EOS ones included (armbian/build#9476). Add an opt-in `include-eos` flag (default false, unchanged behaviour). A targets file can set `items-from-inventory.userspace.include-eos: yes` to also emit the EOS releases. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 1 个月前 | |
tools: source desktop inventory from armbian-configng YAMLs armbian_utils.armbian_get_all_userspace_inventory used to walk config/desktop/{release}/environments/ and config/desktop/common/ to discover which desktops a release shipped + which arches each DE supported. That tree was removed in the previous commit. Re-derive the same inventory by subprocessing armbian-configng's standalone parse_desktop_yaml.py with --list-json. The parser reads tools/modules/desktops/yaml/*.yaml and emits a {name, status, architectures, ...} record per DE; we keep only entries with status == 'supported' for the auto-generated build matrix (status == 'community' is installable on a running system but shouldn't spawn CI matrix slots by default — that's the operator's call; status == 'unsupported' is vendor-specific and never built). Drop: - the now-unreachable per-arch / per-release walkers in targets-compositor.py and the tombstone .eos + labeler.yml entries that pointed at config/desktop/. - the 'any appgroup combination' matrix expansion in aggregation.py — the tier model subsumes that axis. The armbian-configng clone under cache/sources/armbian-configng is populated by interactive_desktop_main_configuration (see the earlier commit) and refreshed on every desktop build. The cli-jsoninfo.sh CLI gained a parallel fetch for the same clone so 'compile.sh configdump-json' can report the new inventory without relying on an interactive-path side-effect. | 4 个月前 | |
patching: auto patchers: bare dts, bare overlays, DT Makefile | 3 年前 | |
Add (c) also to python scripts (#4926) | 3 年前 | |
lib/tools: Python CLI for ORAS (add non-existing case) | 1 年前 | |
`configdump`/`json-info-boards`: revamp, all-JSON now; use_board=yes skip_kernel=no for config; refactor & use new Python bash-declare-to-JSON utility - use new capture'd vars scheme - so `./compile.sh BOARD=xxx BRANCH=yyyy config-dump-json | jq .` now works and is consistent/newline tolerant - introduce internal `skip_host_config=yes` for `prep_conf_main_minimal_ni()` to skip calling `check_basic_host()` | 3 年前 | |
extensions: add @description headers and a list generator (#10534) * extensions: add @description headers and a list generator Add a one-line `# @description` header near the top of every extension in extensions/ (85 files), each ~35-45 words / 3 sentences, source-verified against the extension's actual behaviour. Two extensions with a dedicated docs page also carry a `# @doc-page` link. Add lib/tools/gen-extensions-list.py, which scans extensions/**/*.sh for these headers and prints the Markdown extensions reference consumed by the documentation repo. The list is no longer hand-maintained: edit an extension's `# @description` and the generator brings the change over. Signed-off-by: Igor Pecovnik <igor@armbian.com> * extensions: correct descriptions flagged in review, validate @doc-page Seven @description headers claimed more than the code does: cleanup-space-final-image zerofree globs ${LOOP}p?, so p10+ is not covered image-output-abl one recovery image from ABL_DTB_LIST[0], not per-DTB marvell-tools binaries-marvell and cryptopp track branches, not pins nvidia also skipped without a working headers package odin2-preset-firstrun ships hardcoded 1234 root/user passwords preset-firstrun static networking is on by default, not optional uefi-edk2-rk3588 acpi=off is a default, not forced Reword each to match, and call out the two credential hazards explicitly rather than leaving them implied. In the generator, restrict @doc-page to site-relative paths. The value goes into a Markdown link target on the published docs site and Python-Markdown does not sanitize URL schemes, so a "javascript:" target would survive into the page; unusable values are now dropped with a warning on stderr. Signed-off-by: Igor Pecovnik <igor@armbian.com> * gen-extensions-list: close two holes in @doc-page validation DOC_PAGE_RE accepted "//external.example/x". "/" is in the character class, so after the required leading slash a second one matched happily -- the protocol- relative case the comment claimed to reject sailed straight through. Add a negative lookahead. The annotation parser also matched a single \S+ token, so "@doc-page /guide extra" and a bare "@doc-page" failed to match at all and were dropped in silence, with no warning. Capture the whole value instead and let validation reject it, so malformed annotations are reported rather than ignored. Output over the current extensions/ tree is byte-identical. Signed-off-by: Igor Pecovnik <igor@armbian.com> --------- Signed-off-by: Igor Pecovnik <igor@armbian.com> | 1 个月前 | |
chore: update copyright years to 2026 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) | 8 个月前 | |
Add (c) also to python scripts (#4926) | 3 年前 | |
pipeline: inventory all board vars; add `not-eos-with-video`; introduce `TARGETS_FILTER_INCLUDE` > How to use: > > `./compile.sh inventory` - does just the board inventory; look for output in `output/info` > > `./compile.sh targets-dashboard` - does inventory, targets compositing, and images info; look for output in `output/info`, read the instructions output by the command if you want to load the OpenSearch dashboards. > > `./compile.sh targets` - does the full targets compositing and artifacts, look for output in `output/info` > > If you don't have a `userpatches/targets.yaml`, _one will be provided for you_ defaulting to Jammy minimal CLI > and Jammy xfce desktop, for all boards in all branches. You can pass filters via `TARGETS_FILTER_INCLUDE=...` to narrow. > - board JSON inventory: - more generic regex parsing of variables from board files: - all top-level (non-indented) variables are parsed and included in the JSON board inventory - this allows us to add new variables to the board files without having to update the parser - variables can be bare, `export` or `declare -g`, but **_must_ be quoted** (single or double) and UPPER_CASE - some special treatment for certain variables: - `KERNEL_TARGET` is parsed as a _comma-separated_ list of valid BRANCH'es - `BOARD_MAINTAINER` is parsed as _space-separated_ list of valid maintainer GH usernames as `BOARD_MAINTAINERS: [...]` in the JSON - script complains if `BOARD_MAINTAINER` is not set in core boards. Empty is still allowed. - `HAS_VIDEO_OUTPUT="no"` causes `BOARD_HAS_VIDEO: false` in the JSON (for desktop-only inventorying, see below) - introduce `not-eos-with-video` in `items-from-inventory` at the targets compositor - the same as `not-eos`, but with added `BOARD_HAS_VIDEO: true` filter, see above - introduce `TARGETS_FILTER_INCLUDE` for targets compositor - this filters the targets _after_ compositing (but before getting image info), based on the board inventory data - it's a comma-separated list of `key:value` pairs, which are OR-ed together - new virtual info `BOARD_SLASH_BRANCH` post-compositing inventory for filtering of a specific BOARD/BRANCH combo (e.g. `odroidhc4/edge`) - some interesting possible filters: - `TARGETS_FILTER_INCLUDE="BOARD:odroidhc4"`: _only_ build a single board, all branches. JIRA [AR-1806] - `TARGETS_FILTER_INCLUDE="BOARD_SLASH_BRANCH:odroidhc4/current"`: _only_ build a single board/branch combo - `TARGETS_FILTER_INCLUDE="BOARD:odroidhc4,BOARD:odroidn2"`: _only_ build _two_ boards, all branches. - `TARGETS_FILTER_INCLUDE="BOARD_MAINTAINERS:rpardini"`: build all boards and branches where rpardini is a maintainer - `TARGETS_FILTER_INCLUDE="BOARDFAMILY:rockchip64"`: build all boards and branches in the rockchip64 family - image-info-only variables like `LINUXFAMILY` is **not** available for filtering at this stage - rename `config/templates` `targets-all-cli.yaml` to `targets-default.yaml` - this is used when no `userpatches/targets.yaml` is found - new default includes all boards vs branches for non-EOS boards - also desktop for all boards that _don't_ have `HAS_VIDEO_OUTPUT='no`` - introduce simplified `targets-dashboard` CLI: - does only inventory, compositing, and image info, but not artifact reducing, etc. - ignore desktop builds in the OpenSearch indexer - update the OpenSearch Dashboards, including new information now available - invert the logic used for `CLEAN_INFO` and `CLEAN_MATRIX` - defaults to `yes` now, so new users/CI don't get hit by stale caches by default - repo pipeline CLI stuff is usually run on saved/restored artifacts for `output/info`, so don't clean by default via the CLI | 3 年前 | |
chore: update copyright years to 2026 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) | 8 个月前 | |
patching.py: colour reject hunks per diff line Build the Rejects cell with rich_rejects(): plain Text styled per line, added lines green, removed red, hunk headers cyan. Tabs are expanded on the Text with rich's cell-aware expand_tabs(4), so indentation survives a narrow cell and a wide character before a tab keeps columns aligned. The cell still folds, so long tokens stay complete at any width. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> | 17 天前 | |
tools(shellcheck): SHELLCHECK_INSTALL_ONLY env to skip lint passes Allows CI workflows that need only the platform-detected ShellCheck binary (reviewdog / action-suggester composers) to short-circuit after the cache is populated, instead of running the full source/board/lib linting passes they would have to discard. Assisted-by: Claude:claude-opus-4.7 Signed-off-by: Igor Velkov <325961+iav@users.noreply.github.com> | 4 个月前 | |
tools: Bump `SHELLFMT_VERSION` from 3.13.1 to 3.14.1 | 10 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 天前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 8 个月前 | ||
| 17 天前 | ||
| 4 个月前 | ||
| 10 天前 |