Igor 2046a78660 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>
2026-08-26 19:14:35 +02:00
2026-02-09 00:28:39 +01:00
2014-10-08 10:14:29 +02:00
2026-06-05 10:23:42 +02:00

Armbian logo

Purpose of This Repository

The Armbian Linux Build Framework creates customizable OS images based on Debian or Ubuntu for single-board computers (SBCs) and embedded devices.

It builds a complete Linux system including kernel, bootloader, and root filesystem, giving you control over versions, configuration, firmware, device trees, and system optimizations.

The framework supports native, cross, and containerized builds for multiple architectures (x86_64, aarch64, armhf, riscv64) and is suitable for development, testing, production, or automation.

Looking for prebuilt images? Use Armbian Imager — the easiest way to download and flash Armbian to your SD card or USB drive. Available for Linux, macOS, and Windows.

Quick Start

git clone https://github.com/armbian/build
cd build
./compile.sh

Build demonstration

Build Host Requirements

Hardware

  • RAM: ≥8GB (less with KERNEL_BTF=no)
  • Disk: ~50GB free space
  • Architecture: x86_64, aarch64, or riscv64

Operating System

  • Native builds: Armbian/Debian 13 (Trixie)
  • Containerized: Any Docker-capable Linux
  • Windows: WSL2 with Armbian/Debian 13 (Trixie)

Software

  • Superuser privileges (sudo or root)
  • Up-to-date system (outdated Docker or other tools can cause failures)

Resources

  • Documentation — Comprehensive guides for building, configuring, and customizing
  • Website — News, features, and board information
  • Blog — Development updates and technical articles
  • Forums — Community support and discussions

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines on reporting issues, submitting changes, and contributing code.

Support

Community Forums

Get help from users and contributors on troubleshooting, configuration, and development. 👉 forum.armbian.com

Real-time Chat

Join discussions with developers and community members on IRC or Discord. 👉 Community Chat

Paid Consultation

For commercial projects, guaranteed response times, or advanced needs, paid support is available from Armbian maintainers. 👉 Contact us

Contributors

Thank you to everyone who has contributed to Armbian!

Contributors

Armbian Partners

Our partnership program supports Armbian's development and community. Learn more about our Partners.

S
Description
Armbian Linux build framework generates custom Debian or Ubuntu image for x86, aarch64, riscv64 & armhf
Readme GPL-2.0
1,021 MiB
Languages
Shell 67.2%
Python 11.8%
GSC 8.6%
Batchfile 4.4%
C 3.4%
Other 4.5%