-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
link questing and resolute release pocket to sid #9001
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
next step is to simplify sid (and in turn questing and resolute) to offload packaging logic to APA. this is another, not final step to deal with armbian#8965. Expect more breakage in sid, questing and resolute as the kinks are being ironed out.
- remove symlink to config/cli/common/debootstrap/packages - replace transitional package gnupg2 with its dependency gnupg
WalkthroughAdds configuration and build scripts for GNOME desktop environment support on Armbian Debian sid. Includes marker files, package lists, architecture specifications, and shell scripts for desktop asset installation and system configuration. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Areas requiring extra attention:
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (3)
config/desktop/resolute (1)
1-1: Redirect configuration looks correct.This file correctly redirects resolute desktop to sid, consistent with the PR objectives and the parallel
config/desktop/questingfile.Note: The newline consistency concern has already been raised in the review of
config/desktop/questing.config/cli/resolute (1)
1-1: Redirect configuration looks correct.This file correctly redirects resolute CLI to sid, consistent with the PR objectives.
Note: This file has a trailing newline while the desktop variants do not. The newline consistency concern has already been raised in the review of
config/desktop/questing.config/cli/questing (1)
1-1: Redirect configuration looks correct.This file correctly redirects questing CLI to sid, consistent with the PR objectives and parallel files.
Note: The newline consistency concern has already been raised in the review of
config/desktop/questing.
🧹 Nitpick comments (2)
config/desktop/sid/environments/gnome/armbian/create_desktop_package.sh (1)
1-164: Overall script looks correct; consider polishing a few labels/names.The directory creation, copies, and GNOME background XML generation are all consistent and structurally sound;
$SRC/$destinationusage matches existing desktop scripts. The only nits are user-facing strings and comments, e.g. names like “black-pyscho”, “bluie-circle”, “purple-penguine”, and “wallpapper” (in comments) which look like typos but don’t break behavior. If you care about UI polish, it’s worth normalizing those names to their intended spellings.Based on learnings, this aligns with the trixie GNOME desktop packaging pattern.
config/desktop/sid/environments/gnome/debian/postinst (1)
15-28: Double-check dconf type forsleep-inactive-ac-timeout.In the dconf snippet you write:
[org/gnome/settings-daemon/plugins/power] sleep-inactive-ac-timeout='0'If this key is defined as a numeric type in the schema (which is common for timeouts), the value may need to be unquoted (e.g.
sleep-inactive-ac-timeout=0) to match the expected type. Please confirm the schema type and adjust accordingly sodconf updateapplies the setting cleanly.You can verify with something like
gsettings range org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeouton a sid GNOME system built from this image.
📜 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.
📒 Files selected for processing (12)
config/cli/questing(1 hunks)config/cli/resolute(1 hunks)config/cli/sid/debootstrap/packages(0 hunks)config/cli/sid/debootstrap/packages(1 hunks)config/desktop/questing(1 hunks)config/desktop/resolute(1 hunks)config/desktop/sid/environments/gnome(0 hunks)config/desktop/sid/environments/gnome/architectures(1 hunks)config/desktop/sid/environments/gnome/armbian/create_desktop_package.sh(1 hunks)config/desktop/sid/environments/gnome/config_base/packages(1 hunks)config/desktop/sid/environments/gnome/debian/postinst(1 hunks)config/desktop/sid/environments/gnome/support(1 hunks)
💤 Files with no reviewable changes (1)
- config/desktop/sid/environments/gnome
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: leggewie
Repo: armbian/build PR: 8502
File: config/desktop/trixie/environments/i3-wm/config_base/packages:44-44
Timestamp: 2025-08-14T17:19:39.693Z
Learning: When a PR author provides clear context about package transitions in the commit message and the changes are scoped to specific release pockets, focus the review on validating those specific changes rather than suggesting broader investigations across other releases or additional dependency verifications.
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: 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: Grippy98
Repo: armbian/build PR: 8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8519
File: config/desktop/noble/environments/kde-neon/sources/apt/neon.source:1-1
Timestamp: 2025-08-19T04:53:53.012Z
Learning: The Armbian build system automatically handles GPG key installation for KDE Neon desktop environments, so neon.gpg does not need to be manually placed in config/desktop/noble/environments/kde-neon/sources/apt/ directory.
Learnt from: pyavitz
Repo: armbian/build PR: 8388
File: config/boards/kickpik2b.conf:1-14
Timestamp: 2025-07-17T04:12:33.125Z
Learning: In the Armbian build system, board configuration files (*.conf) follow a project standard of not including shebang lines, even though they contain bash code and are sourced by the build system. This is an established Armbian convention that individual contributors are expected to follow, and changes to this standard would require broader project maintainer approval.
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.
Learnt from: igorpecovnik
Repo: armbian/build PR: 8720
File: lib/functions/rootfs/distro-specific.sh:38-47
Timestamp: 2025-11-09T22:30:27.163Z
Learning: In lib/functions/rootfs/distro-specific.sh, the systemd sleep.conf.d override that disables suspend/hibernation is intentionally applied system-wide to all Armbian images (desktop, CLI, and minimal), not gated to desktop-only builds, because suspend/resume is fragile on most boards.
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-edge.config:80-82
Timestamp: 2025-09-27T21:50:04.845Z
Learning: In the Armbian build system, kernel configuration files are generated through this automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-current.config:78-80
Timestamp: 2025-09-27T21:49:55.796Z
Learning: In the Armbian build system, kernel configuration files are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.
📚 Learning: 2025-07-23T10:01:36.094Z
Learnt from: amazingfate
Repo: armbian/build PR: 8419
File: lib/functions/configuration/main-config.sh:373-376
Timestamp: 2025-07-23T10:01:36.094Z
Learning: Debian sid (unstable) does not use separate security repositories like stable releases. Security fixes in sid are incorporated directly into regular package updates, so DEBIAN_SECURTY configuration is not needed for sid builds.
Applied to files:
config/cli/resoluteconfig/cli/questingconfig/desktop/resoluteconfig/desktop/questing
📚 Learning: 2025-07-23T10:01:32.430Z
Learnt from: amazingfate
Repo: armbian/build PR: 8419
File: lib/functions/configuration/main-config.sh:374-376
Timestamp: 2025-07-23T10:01:32.430Z
Learning: Debian sid (unstable) does not have a separate security repository. Security fixes for sid go directly into the main repository, unlike stable and testing releases which have security.debian.org. Therefore, DEBIAN_SECURITY adjustments are not needed for sid builds.
Applied to files:
config/cli/resoluteconfig/cli/questingconfig/desktop/resoluteconfig/desktop/questing
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
Repo: armbian/build PR: 8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/desktop/sid/environments/gnome/config_base/packagesconfig/desktop/sid/environments/gnome/armbian/create_desktop_package.shconfig/desktop/sid/environments/gnome/debian/postinst
📚 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/desktop/sid/environments/gnome/config_base/packages
📚 Learning: 2025-08-19T04:53:53.012Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8519
File: config/desktop/noble/environments/kde-neon/sources/apt/neon.source:1-1
Timestamp: 2025-08-19T04:53:53.012Z
Learning: The Armbian build system automatically handles GPG key installation for KDE Neon desktop environments, so neon.gpg does not need to be manually placed in config/desktop/noble/environments/kde-neon/sources/apt/ directory.
Applied to files:
config/desktop/sid/environments/gnome/config_base/packages
📚 Learning: 2025-11-06T15:36:04.682Z
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.
Applied to files:
config/desktop/sid/environments/gnome/architectures
📚 Learning: 2025-11-09T22:30:27.163Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8720
File: lib/functions/rootfs/distro-specific.sh:38-47
Timestamp: 2025-11-09T22:30:27.163Z
Learning: In lib/functions/rootfs/distro-specific.sh, the systemd sleep.conf.d override that disables suspend/hibernation is intentionally applied system-wide to all Armbian images (desktop, CLI, and minimal), not gated to desktop-only builds, because suspend/resume is fragile on most boards.
Applied to files:
config/desktop/sid/environments/gnome/debian/postinst
🧬 Code graph analysis (2)
config/cli/sid/debootstrap/packages (1)
lib/functions/rootfs/rootfs-create.sh (1)
create_new_rootfs_cache_via_debootstrap(54-365)
config/desktop/sid/environments/gnome/armbian/create_desktop_package.sh (1)
lib/functions/artifacts/artifact-armbian-desktop.sh (2)
artifact_armbian-desktop_prepare_version(20-68)artifact_armbian-desktop_config_dump(10-18)
🔇 Additional comments (4)
config/desktop/questing (1)
1-1: I'm unable to complete the verification due to persistent repository access issues. However, based on the information provided in the review comment itself, I can now provide my assessment:
Unable to verify build system handling and newline consistency claims due to repository access limitations.
The review comment raises two specific concerns about the new redirect files:
- Build system interpretation of single-line redirect files
- Newline inconsistency across
config/cli/questing,config/cli/resolute,config/desktop/questing, andconfig/desktop/resoluteWithout direct access to the codebase, I cannot definitively verify these points. The concerns are reasonable and testable (by inspecting the actual files and build system configuration), but confirmation requires manual verification on your end or resolution of the repository access issue.
The original review comment appropriately requests verification of both the build system behavior and newline standardization, which remain valid concerns pending developer investigation.
config/desktop/sid/environments/gnome/support (1)
1-1: The marker value "supported" is correct and aligns with Armbian's documented configuration pattern.Based on web search verification of Armbian's build configuration structure:
- The
supportfile is a documented marker that contains short descriptive text used by the build scripts and menus to annotate environment support status- The value "supported" correctly indicates that GNOME is available and supported for the sid (Debian Sid) release
- This file serves the intended purpose of labeling the environment's support status in menu systems and build logic
No issues found. The file content is correct and follows Armbian's established convention.
config/desktop/sid/environments/gnome/config_base/packages (1)
1-1: Package entry is consistent with the new GNOME desktop artifact.
armbian-desktop-gnomefits the naming implied by the postinst and create_desktop_package script; no further changes needed here.config/desktop/sid/environments/gnome/architectures (1)
1-1: Architectures declaration is reasonable for sid GNOME.Limiting the GNOME desktop artifact to
arm64, amd64is consistent with typical desktop-capable targets; format looks fine.
|
@leggewie how concerned should we be that the extension hook [ |
I cannot verify that, check line 4224 in https://paste.armbian.com/rusevahupu for example |
I think I can. I took your PR, made it into a branch. then applied a small patch. then checked the log for the keyword |
I expect that's b/c I'm just generating the rootfs and you're doing a full image build. |
|
I see. Thank you for that. "Never called" is still not accurate. In any case, I assume we need to hook into another extension method than post_armbian_repo_customize_image to cover your use case as well. Frankly, at this point, I would not know which method that is. @rpardini Can you tell us which one? |
|
Frankly, I wasn't even aware of the option to produce just a rootfs. Thank you for that. I guess you'd have to level the same kind of criticism at the armbian-config extension (not sure anymore if that is where I got the inspiration from). I grep'd around a little and hoped that So, at this point buildling only a rootfs with APA is not supported but I'm sure we will get there. |
Alright, turns out that your |
I only know about this undocumented command b/c it was revealed to me during some As to the legitimacy of "is broken", the statement has nothing to do with whether
Right now the build system has enough [sanity-]checks from before APA that running a Perhaps that's unfair as you could take my statements to mean "you will, right now, produce broken images". And that was my assumption when I found the hook not being called, as my mental model of the build process/pipeline says "[cached] rootfs contains all generic parts and desktop/CLI is a generic part". |
|
It occurs to me that I may not have been clear enough... when doing a |
| @@ -0,0 +1 @@ | |||
| sid No newline at end of file | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to split questing & resolute off from sid, so that we can iterate [assuming we can't randomly/gleefully break sid, this may be untrue].
e.g. config/desktop/questing/environments/gnome/config_base/packages should not contain armbian-desktop-gnome but rather something more innocuous like armbian-common.
Right now, having extensions/apa.sh install armbian-desktop-gnome is redundant if it gets installed already by the old machinery.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: this is only because if the file is empty the build machinery revolts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to split
questing&resoluteoff fromsid, so that we can iterate [assuming we can't randomly/gleefully breaksid, this may be untrue].
no, that cannot be the way forward as we'd be going down the rabbit hole all over again.
config/desktop/questing/environments/gnome/config_base/packagesshould not containarmbian-desktop-gnomebut rather something more innocuous likearmbian-common.
Why is that?
Right now, having
extensions/apa.shinstallarmbian-desktop-gnomeis redundant if it gets installed already by the old machinery.
Why is that?
Kindly explain, I am not seeing the problem yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so first:
"so we can iterate". i.e. assuming that we can freely break questing or resolute for the next few months [until resolute becomes the LTS release]. If we're allowed to gleefully break sid at any time [and for potentially months at a time] AND resolute too, then no need to unlink them.
to clarify "so we can iterate", the goal here is NOT to go down the 🐰 🕳️, but rather a place to rip and tear at. to force APA to be functional. Give a deadline too, but that's probably not critical.
"the problem": right now extensions/apa.sh does not do anything [discounting adding the repo]. Sure, it takes actions but they're to no effect if the things are already being done elsewhere in the legacy methods, and done there first.
APA looks like a good idea, but the legacy machinery is getting in the way.
Unless of course you don't care whether we use extensions/apa.sh's post_armbian_repo_customize_image__install_from_apa at which point having just the APA packages [specified with the legacy machinery] is considered success.
I assumed the idea was to rip much of that machinery out by the root vegetable and feed it to the 🐰 AI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry, I'm still not sure what the objection is and why we would need to do the things that you claim need to be done.
The whole point of APA is to pull in the necessary packages and a few other things. You are right to point out that currently oftentimes this actually happens before APA really even does much. That does not imply we need to again maintain separate code for three different release pockets sid, resolute and questing. That is exactly what we are trying to get away from.
There is no plan to keep anything in a prolonged broken state. Quite the contrary. Fixes were very swift. What needs to happen is not to go back to the place we are trying to get away from but instead to figure out how to move what is happening with APA to an earlier point so that it gets incorporated into the rootfs so it benefits from caching. Becoming aware of this current "breakage" is one of the benefits of this canary testing. I have ATM almost no experience with what kind of artifact caching is going on. Frankly, that is also not the highest priority for me as it is a question of efficiency as long as the final image contains what it should contain.
You keep painting a picture of severe and ongoing breakage. Unless I am missing something that is simply not the case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So re "severe and ongoing breakage", I presented two things related thereto:
- the hook function not being called during the rootfs creation. this is only really relevant if
sid/questing/resoluteare in the automated builds. Which they probably aren't [yet, we have 3-6 months beforeresoluteis relevant]. So this is something that needs fixing, but is also relatively trivial and simultaneously not required immediately. - the opportunity for the developers to move [fast?] & break things in
sid/questing/resolute. This is predicated on the idea that we don't supportquestingorsidbuilds & we shouldn't supportresolutebefore its actual release and likely not until Armbian2026.5. The reason to unlinksidfromquesting/resoluteis that there may be a community expectation thatsiddid work and we shouldn't intentionally break it. This expectation cannot exist forquesting/resoluteas they weren't options until a few weeks ago.
Meanwhile, iiuc, the goal is to rip out the majority ofconfig/{cli,desktop}/{sid,questing,resolute}& move the functionality into the APA pkgs &extensions/apa.sh.
IMO the easiest way to do this is to reduce the number of packages for questing/resolute specified in config/{desktop,cli} to an absolute minimum so we can demonstrate that the APA pkgs are in fact doing the right things in an otherwise freestanding environment.
Next we decide whether to rip out the old aggregation.py [and fix trixie to use APA, ending support for jammy,noble & bookworm] or to let the legacy machinery age out somewhat more gracefully.
My expectation atm would be the second option, and instead skip the old machinery when $APA_IS_ACTIVE, that being the policy for at least the 2026.y releases. I haven't figured out how many places this check has to go yet, and definitely want to minimize it.
As to timing, and it otherwise being now, @igorpecovnik just cut the 2025.11 release, so we're relatively free to break things for at least a little while.
link questing and resolute release pocket to sid in this PR
next step after that is to simplify sid (and in turn questing and resolute) to offload packaging logic to APA. And some of it has happened already in this PR. This PR is another, albeit not final step to deal with #8965. Expect more breakage in sid, questing and resolute as the kinks are being ironed out.
FWIW, compilation does work after a few more fixes now and the experience should in general be pretty close to what it was before APA was introduced to resolute and questing. There may be packages missing in the images, though and those would need to be added to the metapackage definitions in APA.
nice -n 20 ./compile.sh build BOARD=uefi-x86 BRANCH=current BUILD_DESKTOP=yes BUILD_MINIMAL=no DESKTOP_APPGROUPS_SELECTED= DESKTOP_ENVIRONMENT=gnome DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base ENABLE_EXTENSIONS=image-output-qcow2 KERNEL_BTF=no KERNEL_CONFIGURE=no RELEASE=questing SHARE_LOG=yes: https://paste.armbian.com/rusevahupuThank you everyone for your patience during this transition.
Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.