Skip to content

Conversation

@iav
Copy link
Contributor

@iav iav commented Jan 5, 2026

Enable Ubuntu Resolute image build.

Copy file structure from config/cli/resolute to config/cli/noble.

Undo APA (#9164 (comment)).

How Has This Been Tested?

Build edge, current images for noble, resolute, trixie
./compile.sh EXPERT=yes BOARD=helios64 KERNEL_CONFIGURE=no BUILD_MINIMAL=yes KERNEL_BTF=no KERNEL_GIT=shallow INSTALL_HEADERS=yes RELEASE=trixie BRANCH=current

  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • Chores
    • Added 56 additional system packages (development, system utilities, hardware and network tools, and admin utilities).
    • Centralized configuration by pointing variant-specific configs to shared common configuration entries.
    • Disabled automatic APA enablement for Debian Unstable; manual activation is required if desired.

✏️ Tip: You can customize this high-level summary in your review settings.

@iav iav requested review from a team and igorpecovnik as code owners January 5, 2026 06:57
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

📝 Walkthrough

Walkthrough

Adds per-variant config symlink files for resolute and questing that point to shared common paths, adds a 56-line package list for each variant, and comments out an APA auto-enable conditional in lib/functions/configuration/main-config.sh.

Changes

Cohort / File(s) Summary
Configuration references (debootstrap & main)
config/cli/resolute/debootstrap/{components,packages}, config/cli/resolute/main/{config_desktop,packages,packages.uninstall}, config/cli/questing/debootstrap/{components,packages}, config/cli/questing/main/{config_desktop,packages,packages.uninstall}
New files added that contain single-line relative references (e.g., ../../common/...) redirecting resolute and questing configs to shared common paths.
Additional package lists
config/cli/resolute/main/packages.additional, config/cli/questing/main/packages.additional
New data files listing 56 Debian/apt package names (one per line). No code logic changes.
APA enablement change
lib/functions/configuration/main-config.sh
Removed/disabled the conditional that auto-enabled the APA extension for sid/questing/resolute (now left commented), altering the APA enablement path.

Sequence Diagram(s)

(omitted — changes are small config redirections and a minor script tweak, not a multi-component control-flow feature)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

Desktop

Suggested reviewers

  • igorpecovnik
  • rpardini
  • leggewie

Poem

🐰 I hop through files with a cheerful twitch,
Pointing paths to common roots without a hitch,
Fifty-six packages line up neat and small,
APA tucked quiet, no auto-enable call,
Shared configs unite — a tidy springtime stitch.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Enable Ubuntu Resolute image build' directly summarizes the main objective of the PR, which is to enable building Ubuntu Resolute images by adding configuration files and disabling APA.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

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 e4c3969 and 0ec7488.

📒 Files selected for processing (13)
  • config/cli/questing/debootstrap/components
  • config/cli/questing/debootstrap/packages
  • config/cli/questing/main/config_desktop
  • config/cli/questing/main/packages
  • config/cli/questing/main/packages.additional
  • config/cli/questing/main/packages.uninstall
  • config/cli/resolute/debootstrap/components
  • config/cli/resolute/debootstrap/packages
  • config/cli/resolute/main/config_desktop
  • config/cli/resolute/main/packages
  • config/cli/resolute/main/packages.additional
  • config/cli/resolute/main/packages.uninstall
  • lib/functions/configuration/main-config.sh
✅ Files skipped from review due to trivial changes (3)
  • config/cli/questing/debootstrap/components
  • config/cli/questing/main/packages.uninstall
  • config/cli/resolute/main/packages
🚧 Files skipped from review as they are similar to previous changes (6)
  • config/cli/questing/main/config_desktop
  • config/cli/resolute/debootstrap/components
  • lib/functions/configuration/main-config.sh
  • config/cli/questing/debootstrap/packages
  • config/cli/resolute/main/packages.uninstall
  • config/cli/questing/main/packages.additional
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: igorpecovnik
Repo: armbian/build PR: 9087
File: .github/workflows/pr-check-pictures.yml:138-146
Timestamp: 2025-12-16T13:40:07.649Z
Learning: In the Armbian build repository, when introducing new requirements or checks (like the board assets verification workflow), the project prefers an initial educational-only period where violations post helpful PR comments and warnings but don't block merges. This allows contributors to become familiar with new requirements before enforcement is enabled (typically after ~6 months).
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8328
File: lib/functions/compilation/patch/drivers_network.sh:542-545
Timestamp: 2025-06-24T10:08:40.313Z
Learning: In the Armbian build system, when a PR removes build support for a specific kernel version, version check issues for that removed version become practically irrelevant even if they appear incorrect in isolation. Context about which kernel versions are being deprecated/removed is important for understanding the impact of version-related code changes.
Learnt from: leggewie
Repo: armbian/build PR: 8559
File: config/desktop/sid/environments/kde-plasma:1-1
Timestamp: 2025-08-29T18:57:26.930Z
Learning: APA (Armbian Packaging Archive) is a project that focuses on defining package dependencies and will replace the aggregation part of the current build system, but not the entire build system. It is not a full replacement for desktop environment configuration approaches.
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-10-24T04:46:22.901Z
Learning: In lib/functions/rootfs/rootfs-create.sh, the FIXME comment about mmdebstrap usage with --aptopt is a future note related to PR `#8785`, which hasn't been merged yet.
📚 Learning: 2025-06-22T00:45:26.182Z
Learnt from: djurny
Repo: armbian/build PR: 8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.

Applied to files:

  • config/cli/resolute/main/packages.additional
📚 Learning: 2025-10-24T04:46:22.901Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-10-24T04:46:22.901Z
Learning: The `debootstrap` tool doesn't use `apt`, which is important context when reviewing apt-related configuration in rootfs creation code.

Applied to files:

  • config/cli/resolute/debootstrap/packages
🔇 Additional comments (4)
config/cli/questing/main/packages (1)

1-1: LGTM — common package alias looks correct.
This aligns with the shared-path pattern used elsewhere.

config/cli/resolute/main/config_desktop (1)

1-1: LGTM — shared desktop config alias is consistent.
No issues spotted.

config/cli/resolute/debootstrap/packages (1)

1-1: LGTM — debootstrap package alias is fine.
No concerns.

config/cli/resolute/main/packages.additional (1)

1-56: LGTM — package list format looks correct.
No issues found in the data-only list.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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/medium PR with more then 50 and less then 250 lines 02 Milestone: First quarter release Needs review Seeking for review Framework Framework components labels Jan 5, 2026
@tabrisnet
Copy link
Collaborator

@leggewie Does the plan still include APA?

@iav
Copy link
Contributor Author

iav commented Jan 5, 2026

No, it's not linked.

@iav
Copy link
Contributor Author

iav commented Jan 5, 2026

I'm ashamed to admit, but I don't understand everything that is done with apa at all.

@tabrisnet
Copy link
Collaborator

What I was told back around November was that sid, questing & resolute were supposed to start the plan to ditch aggregation. Additionally, Resolute isn't scheduled for a release until April.
Admittedly, it is possible that APA is no longer the future, but I'd rather see that confirmed or not.
Meanwhile, #9000 plus APA [neither of which are really complete] are intended to solve this same problem resolutely.

@tabrisnet
Copy link
Collaborator

I'm ashamed to admit, but I don't understand everything that is done with apa at all.

high-level overview: config/cli & config/desktop get converted into task/meta-packages. As @leggewie described it, the goal was for a default install to have as short a list for apt-mark showmanual as reasonably possible, and otherwise have everything handled by Depends/Recommends/Suggests

@iav
Copy link
Contributor Author

iav commented Jan 5, 2026

It seems wrong to me to inherit a new version of ubuntu directly from debian if ubuntu is available.
The patch I propose does not change anything in essence, only mechanically continues what works now to the new version. It seemed to me that moving in small steps with small changes would be easier. The project with apa looks like a lot of work, but for now you need to live somehow.
I'm not suggesting that we abandon the new system, but we should live to see it ready.

@tabrisnet
Copy link
Collaborator

tabrisnet commented Jan 5, 2026

I don't exactly disagree, except that if resolute is Ubuntu 2026.4, then this PR is premature. We won't be considering resolute as a supported RELEASE before our own 2026.5, and 2026.2 isn't even out yet.
Then trying to rebase trees with components under continual flux is a PITA [which strictly speaking isn't your fault/problem], especially when one tree contains git rm of the files in question.

@iav
Copy link
Contributor Author

iav commented Jan 5, 2026

I understand.
But what if noble is too old (for one of my need), oracular eos, plucky not work and too old to fix, no questing, no resolute.
I need something that works. Even if it's not perfect enough, and you can do better. With this PR, I tried to solve the problem with minimal interference for those who want more.
I can suggest that instead of symlinks, just copy the files to the cli/, if this will facilitate the transition to APA.

@rpardini
Copy link
Member

rpardini commented Jan 5, 2026

While I agree that 1) we should enable resolute without APA 2) remove the traces of APA until that initiative produces some actual benefit that justifies it's inclusion; I do think we need to enable building on Resolute before targetting Resolute.

@tabrisnet
Copy link
Collaborator

While I agree that 1) we should enable resolute without APA 2) remove the traces of APA until that initiative produces some actual benefit that justifies it's inclusion; I do think we need to enable building on Resolute before targetting Resolute.

yes. but, and I admit this is an ass-umption, we won't certify it before our own 2026.5, then we can wait until post-2026.2.
ON THE OTHER HAND, it's a fair question as to the relevant cost of effort [of maintaining 2-3 branches with differing solutions]. I may be blowing that effort out of reasonable proportion, especially if the upstream [aka main] churn is low.
Personally, I just want to know what the plan is, does APA go forward with Leggewie, is another ownership team [I talked to @greeneg Saturday, I think he has sufficient background] formed [who will change how the pkgs are generated], or do we just 🗑️ the idea and rework aggregation.
I expect if we punt at this question for another month, we will effectively punt until the next LTS in 18-24 months.

@iav
Copy link
Contributor Author

iav commented Jan 5, 2026

Add questing folder too. Just to start use.
Aaand — without first commit they can't be builded too.

Not stopping from any works for future enhancements and reworks.
I just need buildable ubuntu images fresher than noble.

Please

@rpardini
Copy link
Member

rpardini commented Jan 6, 2026

@iav agree 100%.

Out of curiosity, how did you determine the contents of the new files? Did you simply copy one of the existing ones and it worked? Things added or removed?

This shows how we could instead of the APA fiasco, replace the aggregation (using those crazy files/symlinks) with simple bash code and a few helpers and be able to express in a few lines "Resolute is the same as X, minus Z" and gain the power of extensions/hooks on top for free.

@iav
Copy link
Contributor Author

iav commented Jan 6, 2026

Out of curiosity, how did you determine the contents of the new files? Did you simply copy one of the existing ones and it worked? Things added or removed?

I just copied the files.
Server build just works, desktop I doesn't try.
But even if it doesn't work — it's much easier to run and fix errors that appear than to design them from scratch.

@iav
Copy link
Contributor Author

iav commented Jan 6, 2026

Yes, and I don't see any problem in just replacing the symlink with a regular copy of the file exactly at the very moment when we find that it's time to change the file that was still working as a symlink.
The simlink works very well for a time. When we only needed to fix it for one release — we remove the link, put a copy in its place, and make a correction.

@iav iav force-pushed the kernel_with_resolute branch 4 times, most recently from 7bb1135 to 2d5525b Compare January 15, 2026 16:22
@tabrisnet
Copy link
Collaborator

So... having had a discussion with @igorpecovnik
I think this needs to have a revert of #8969 and deletion of https://github.com/leggewie/armbian-build/blob/main/lib/functions/configuration/main-config.sh#L324-L327
That is, APA is being disabled for now, and this can go forward.
NOTE: the prior state was symlinking questing/resolute to sid, but your way [presumably] works.

@tabrisnet
Copy link
Collaborator

we can of course revert #8969 separately

@iav
Copy link
Contributor Author

iav commented Jan 15, 2026

we can of course revert #8969 separately

Definitely, it will be clearer and cleaner separately.

@iav
Copy link
Contributor Author

iav commented Jan 15, 2026

deletion of https://github.com/leggewie/armbian-build/blob/main/lib/functions/configuration/main-config.sh#L324-L327

Sorry, I didn't understand.
In my opinion, "completely removing the lines main-config.sh#L324-L327" and "undoing #8969" are different things.
So should I undo or delete the lines?
Or comment out the only line without a comment in that block, so that I can uncomment it later?

@iav iav force-pushed the kernel_with_resolute branch from 2d5525b to 18fc481 Compare January 15, 2026 19:37
@tabrisnet
Copy link
Collaborator

My thought here was that reverting #8969 isn't enough... we want to disable APA for sid too.
We can add it back later.
Whether to delete or comment the lines out? I'm good with just commenting it.

@iav
Copy link
Contributor Author

iav commented Jan 15, 2026

Would you like me to prepare a PR with #8969 reverted and the remaining line commented out?
2 steps - to understand the essence of the changes.

@iav iav force-pushed the kernel_with_resolute branch from 18fc481 to de00e23 Compare January 15, 2026 20:00
@tabrisnet
Copy link
Collaborator

Would you like me to prepare a PR with #8969 reverted and the remaining line commented out? 2 steps - to understand the essence of the changes.

sounds reasonable.

@iav iav marked this pull request as draft January 15, 2026 21:20
@iav iav force-pushed the kernel_with_resolute branch 2 times, most recently from df6065c to 498ff45 Compare January 15, 2026 23:06
iav added a commit to iav/armbian that referenced this pull request Jan 15, 2026
@iav
Copy link
Contributor Author

iav commented Jan 15, 2026

Would you like me to prepare a PR with #8969 reverted and the remaining line commented out? 2 steps - to understand the essence of the changes.

sounds reasonable.

done

@tabrisnet
Copy link
Collaborator

Would you like me to prepare a PR with #8969 reverted and the remaining line commented out? 2 steps - to understand the essence of the changes.

sounds reasonable.

done

minor nit: the commit message should say "Disable APA" not "ATF"

@iav iav marked this pull request as ready for review January 15, 2026 23:22
@iav iav force-pushed the kernel_with_resolute branch from e4c3969 to 0ec7488 Compare January 15, 2026 23:26
Copy link
Collaborator

@tabrisnet tabrisnet left a comment

Choose a reason for hiding this comment

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

LGTM

@github-actions github-actions bot added the Ready to merge Reviewed, tested and ready for merge label Jan 16, 2026
@github-actions
Copy link
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions bot removed the Needs review Seeking for review label Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

02 Milestone: First quarter release Framework Framework components Ready to merge Reviewed, tested and ready for merge size/medium PR with more then 50 and less then 250 lines

Development

Successfully merging this pull request may close these issues.

3 participants