Skip to content
This repository was archived by the owner on Mar 29, 2026. It is now read-only.

armbian-common: rework to add more dependencies/recommends from armbian/build's CLI config#30

Closed
tabrisnet wants to merge 5 commits into
armbian:mainfrom
tabrisnet:tabrisnet_cli2
Closed

armbian-common: rework to add more dependencies/recommends from armbian/build's CLI config#30
tabrisnet wants to merge 5 commits into
armbian:mainfrom
tabrisnet:tabrisnet_cli2

Conversation

@tabrisnet

Copy link
Copy Markdown
Contributor

This is a cherry-pick, with a few teaks, from #25

  • apt-utils is needed, albeit it will be installed by mmdebstrap [we have to explicitly do so], as is locales
  • console-setup is from config/cli/common/debootstrap/packages
    • so is ca-certificates
  • e2fs-progs oddly isn't, but it is needed to do the FS resize that happens on first boot.
    • should this dependency be handled differently for different rootfs [btrfs, ext4, xfs, etc]?
  • initramfs-utils is needed for any kernel that I'm aware of. arguably armbian-bsp or linux-image should depend on this, but as its always needed, it should go into the rootfs cache.
  • gnupg2 is a virtual package that pulls in other GNU PG machinery, which afaik is needed for APT.
  • iproute2 seems obvious? maybe this could be demoted to Recommends
  • I'm not aware of any system able to avoid tzdata

the Recommends are just pulled from config/cli/common/main/packages

@github-actions github-actions Bot added the 02 Milestone: First quarter release label Dec 8, 2025
@coderabbitai

coderabbitai Bot commented Dec 8, 2025

Copy link
Copy Markdown

Walkthrough

The PR updates debian/control for the armbian-common package, adding multiple new package names to Depends (apt-utils, ca-certificates, console-setup, e2fsprogs, initramfs-tools, iproute2, logrotate, linux-base, locales, gnupg2, tzdata) and many packages to Recommends (including bash-completion, curl, jq, rsync, wpasupplicant, wireguard-tools, u-boot-tools, etc.). No packages were removed; the change is additive and includes a minor formatting adjustment for sudo.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify package names against Debian package registry for typos and correct package names.
  • Check for unintended duplicates between Depends and Recommends.
  • Confirm that packages with system-level impact (initramfs-tools, linux-base, locales, tzdata) are appropriate as Depends versus Recommends.
  • Review formatting of debian/control for proper punctuation and line-wrapping.

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding dependencies and recommends to armbian-common based on armbian/build's CLI config.
Description check ✅ Passed The description provides relevant context about which packages are being added, their purpose, and their source from armbian/build configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size/small PR with less then 50 lines Needs review Seeking for review labels Dec 8, 2025
@tabrisnet tabrisnet requested a review from leggewie December 9, 2025 20:09

@leggewie leggewie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking good, thank you

I haven't reviewed every single package that you added but it's easy enough to adjust if ever that became necessary. thank you for sure for adding your reasons of making some of the additions in the comment section of this PR.

I very much trust your skill and judgment. Approved. Again, thank you for your contribution. Much appreciated.

@leggewie

Copy link
Copy Markdown
Contributor

need to resolve a conflict now after #29 landed, will merge after that

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
debian/control (2)

18-35: Depends additions look sane for a CLI rootfs; only minor classification trade‑offs to confirm

The new Depends entries (apt-utils, ca-certificates, console-setup, e2fsprogs, initramfs-tools, iproute2, logrotate, linux-base, locales, gnupg2, tzdata) match the PR’s intent of making the cached rootfs self-contained and aligned with armbian/build’s CLI config.

A few points you may want to double‑check before merging:

  • iproute2 in Depends: this pushes it into the minimal “must-have” set for every armbian-common consumer. If there are environments that truly only need SSH + basic networking (and not full ip tooling), you might consider making iproute2 a Recommends instead, as mentioned in the PR text.
  • e2fsprogs in Depends: this is a reasonable default for ext* rootfs resize-on-first-boot. If you later promote btrfs/xfs rootfs variants, you’ll probably also want their tooling (btrfs-progs, xfsprogs, etc.) treated consistently (either all Depends or all Recommends) to avoid asymmetric behavior on first boot.
  • Several of these (apt-utils, locales, tzdata, console-setup) can be quite chatty in debconf if DEBIAN_FRONTEND is not set; ensure armbian/build still forces noninteractive or seeds them appropriately so image builds remain deterministic.

Functionally this all looks fine; these are mostly codifying what’s already implicitly present via debootstrap. The above are just classification/UX considerations to confirm against your supported use-cases (CLI images vs custom derivatives, containers, etc.).


39-78: Recommends expansion aligns with armbian/build CLI packages but significantly enlarges the default base; consider whether any of these should be Suggests or in a separate meta

The enlarged Recommends set (bash-completion, bc, btrfs-progs, cron, curl, dbus-user-session, dosfstools, dialog, debconf-utils, debsums, fake-hwclock, fdisk, figlet, htop, init, iw, jq, less, lsof, man-db, mmc-utils, ncurses-term, parted, psmisc, rsync, rsyslog, systemd-resolved, toilet, u-boot-tools, usbutils, wget, wireguard-tools, wireless-regdb, wpasupplicant, etc.) looks like a direct transcription of the CLI config, which is good for keeping the rootfs cache and “armbian CLI” behavior in sync.

A couple of potential follow‑ups to think about (not blockers):

  • Some of these are clearly “core admin tools” (curl, rsync, fdisk, parted, man-db, rsyslog, u-boot-tools) and seem uncontroversial as Recommends. Others are more cosmetic or niche (figlet/toilet, maybe wireguard-tools on boards that won’t use it) and might be better suited to either Suggests or a separate “extras” metapackage if image size or boot time becomes a concern.
  • init and systemd-resolved as Recommends encode a fairly opinionated init/resolver stack. That’s probably fine for Armbian images, but if armbian-common is ever reused in container or alternate-init contexts, having these only as Suggests (or behind a more specific meta) could provide more flexibility.

If the explicit goal is “armbian-common == CLI image base profile”, then this is consistent; otherwise, you may want to split “minimal base” vs “nice-to-have tooling” into separate metas down the road.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3c6ca64 and 4787857.

📒 Files selected for processing (1)
  • debian/control (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: tabrisnet
Repo: armbian/apa PR: 25
File: debian/control:23-23
Timestamp: 2025-12-06T21:01:15.488Z
Learning: In the armbian/apa repository's debian/control, iputils-ping is temporarily added to armbian-common's Depends as a workaround for a capability issue where /bin/ping cannot create raw sockets. The proper solution involves: (1) PR #27, (2) removing the chmod u+s workaround code from armbian/build (armbian/build#9033), and (3) adding libcap2-bin to armbian/build's debootstrap package list so that iputils-ping's postinst script can use setcap to properly configure /bin/ping. Once these pieces are complete and merged, iputils-ping should be removed from armbian-common's Depends as it will no longer be needed.
📚 Learning: 2025-12-06T21:01:15.488Z
Learnt from: tabrisnet
Repo: armbian/apa PR: 25
File: debian/control:23-23
Timestamp: 2025-12-06T21:01:15.488Z
Learning: In the armbian/apa repository's debian/control, iputils-ping is temporarily added to armbian-common's Depends as a workaround for a capability issue where /bin/ping cannot create raw sockets. The proper solution involves: (1) PR #27, (2) removing the chmod u+s workaround code from armbian/build (armbian/build#9033), and (3) adding libcap2-bin to armbian/build's debootstrap package list so that iputils-ping's postinst script can use setcap to properly configure /bin/ping. Once these pieces are complete and merged, iputils-ping should be removed from armbian-common's Depends as it will no longer be needed.

Applied to files:

  • debian/control

@leggewie

Copy link
Copy Markdown
Contributor

this was merged via the CLI, not github tooling

closing

@leggewie leggewie closed this Dec 10, 2025
@leggewie

Copy link
Copy Markdown
Contributor

I suggest to consider moving some Depends to Recommends status to allow for deinstallation at runtime if so desired.

I agree that e2fs-progs should be installed in all images including -minimal as long as they are ext2-based, but I believe it might be better handled as an explicit addition to the bootstrapped packages at compile time. -minimal should be possible to be really the absolute minimum (boots and can be accessed via ssh). There can of course be exceptions for practical purposes, hence "consider" above.

@tabrisnet

Copy link
Copy Markdown
Contributor Author

I think to do this, we'd have to have another extension that knows which rootfs. I don't know if we have a variable for that yet or not. grep ROOTFS -r lib/ is a bit noisy as you can imagine.

@tabrisnet tabrisnet deleted the tabrisnet_cli2 branch December 10, 2025 22:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

02 Milestone: First quarter release Needs review Seeking for review size/small PR with less then 50 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants