| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
cli: append to EXTRA_BUILD_DEPS array in docker/patch ssh hooks Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 2 个月前 | |
cli-flash: match image selectors as full fields, not substrings The per-selector image filter used a loose substring test (candidate == *"${token}"*). Image names are VENDOR_VERSION_Board_release_branch_kver..., where Board/release/branch are underscore-delimited middle fields, so a short release/branch (e.g. 'sid', 'edge') could match inside another field and keep the wrong image. Anchor each selector to a complete _-delimited field (*"_${token}_"*). Empty selectors are still skipped and the sequential board->release->branch narrowing is unchanged. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 19 天前 | |
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 个月前 | |
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 个月前 | |
cli-patch: drop vestigial 'next-' from kernel push-branch name The kernel to-git push branch was <vendor>-next-<family>-<ver>-<date>. The 'next' token was a constant on every kernel push branch and nothing parses it back - no counterpart (no -stable/-current) and u-boot never used it - so it carried no information. Drop it; branches are now <vendor>-<family>-<ver>-<date>. Note: this changes kernel push-branch names and the associated summary URLs; any bookmarks/tooling expecting the old '-next-' names must update. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 1 个月前 | |
docker: improve auto-pull cronjob with opt-in flag and cleanup - Add ARMBIAN_DOCKER_AUTO_PULL environment variable (opt-in, must be explicitly set to "yes") - Move auto-pull cronjob setup from requirements to docker CLI - Add automatic cleanup of cronjob files when flag is disabled/removed - Remove verbose "unchanged" messages for cleaner output - Simplify control flow in docker_ensure_auto_pull_cronjob() | 7 个月前 | |
show-extensions: fix hook-doc rendering (heading marker + btrfs docs) Two rendering bugs on the generated Extension Hooks docs page: 1. The docs formatter emitted the one-line summary as `> <first-comment-line>`. When a hook's inline doc opened with a `#`-prefixed line (e.g. btrfs_root_add_subvolumes), that became `> #text` — a level-1 heading inside a blockquote, which rendered huge and broke the page's table of contents for every hook after it. Strip a leading `#` from the summary so it can never become a heading; also guard the body so summary-only hooks emit no trailing blank. 2. The two btrfs_root_add_subvolumes[_fstab] hook docs were raw shell (comment lines + example commands), not markdown, so they rendered as run-together text. Rewrite them as a prose summary + description + a fenced example. Generated docs are prose (with inline code) as intended; hook doc comments are markdown and should be written as such. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 18 天前 | |
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 个月前 | |
cli: add show-extensions command to list extension hook points Statically scans the build sources for call_extension_method sites and prints the available extension hook points. Unlike the build-time auto-generated docs, the list is exhaustive regardless of which hooks a given build triggers, and needs no board config or Docker. Default output is the sorted hook names; SHOW_EXTENSIONS=docs emits Markdown with each hook's inline documentation. The host-side hook scan uses grep --null (portable NUL-delimited output on both GNU and BSD/macOS grep) to feed mapfile -d ''. Suggested in armbian/documentation#859. Assisted-by: Claude:claude-opus-4.8 | 2 个月前 | |
fix(patching): render patch summary at the reader's real terminal width The patch summary table forced a console width of COLUMNS-or-160 minus 12 and truncated the "Diffstat / files" and "Author / Subject" columns, so on a narrow terminal the right-hand columns were silently cut off — a wide and a narrow terminal showed different content for the same patch set, and two people comparing the same build could not see the same rows. Root cause and fix: - patching.py runs through `env -i` with its stdout piped to the logger, so it can never see the real terminal itself; the width only ever arrived via COLUMNS, which the wrappers hardcoded to 160. Capture the real terminal width once in cli_entrypoint (ARMBIAN_TTY_COLUMNS), before any logging redirects fd 1, and have the kernel and u-boot patching wrappers pass it as COLUMNS. It is left empty when stdout is not a tty, so piped/CI runs fall back to a fixed wide width for legible logs instead of a synthetic narrow one; an explicitly exported COLUMNS still wins. This removes the COLUMNS=$(tput cols) workaround. Docker relaunches run without --tty, so the container cannot measure the terminal; the host-captured width is forwarded through docker's COLUMNS env. - patching.py derives the width from that COLUMNS / the tty, floored at CONSOLE_MIN_WIDTH, and folds the summary columns (overflow="fold", small min_width) instead of truncating, so every column survives down to a 40-col terminal. The three width numbers are named constants. - The failed-patches table is rendered on a separate, fixed-width console: its Rejects cell uses rich's Syntax word-wrap, which elides long unbroken diff lines with an ellipsis on a narrow width, and those reject hunks are the whole point of that table — so it gets at least the fallback width, and the full terminal width when that is wider. Closes: #9734 Assisted-by: Claude:claude-opus-4.8 Signed-off-by: Igor Velkov <325961+iav@users.noreply.github.com> | 1 个月前 | |
(#9400 P1b) Replace unsafe eval with declare -g and nameref (#9461) * (#9400 P1b) cli: utils-cli: replace eval with declare -g eval "declare -g $name=\"$value\"" is equivalent to the safer declare -g "${name}=${value}" which avoids code injection risk. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * (#9400 P1b) configuration: interactive: replace eval with declare -g Two eval calls in set_interactive_config_value(): - eval "$1"='$2' → declare -g "${1}=${2}" - eval "ARMBIAN_INTERACTIVE_CONFIGS[${1}]"='$2' → direct array assignment Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * (#9400 P1b) configuration: change-tracking: replace eval with nameref The original code used eval to read an array variable with a dynamic name: eval "var_value=\"\${${var_name}[@]}\"" # sorry eval works, but it executes arbitrary code — if $var_name were ever a crafted string, it could inject commands. bash 4.3+ nameref (local -n) creates an alias to the variable named in $var_name without executing any code: local -n _ct_arr_ref="${var_name}" var_value="${_ct_arr_ref[*]}" unset -n _ct_arr_ref unset -n removes only the alias (not the referenced array), preventing "already a nameref" warnings on subsequent loop iterations. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * (#9400 P1b) artifacts-obtain: replace eval with nameref --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> | 4 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 19 天前 | ||
| 4 个月前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 18 天前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 4 个月前 |