Skip to content

Conversation

@leggewie
Copy link
Collaborator

@leggewie leggewie commented Nov 26, 2025

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/rusevahupu

Thank you everyone for your patience during this transition.

Summary by CodeRabbit

Release Notes

  • New Features
    • Added GNOME desktop environment support for Armbian with custom wallpapers, icons, and login screen theming.
    • Included pre-configured GNOME settings for display, power management, and screen saver.
    • Added support for arm64 and amd64 architectures in desktop environment configurations.

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

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
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 26, 2025

Walkthrough

Adds 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

Cohort / File(s) Change Summary
Configuration Markers
config/cli/questing, config/cli/resolute, config/desktop/questing, config/desktop/resolute
New marker files containing "sid" strings to denote Debian sid (unstable) environment configuration targets.
Debootstrap Packages
config/cli/sid/debootstrap/packages
New package list for bootstrap installation: apt-utils, locales, console-setup, gnupg, ca-certificates.
GNOME Environment Configuration
config/desktop/sid/environments/gnome
Removed reference to ../../trixie/environments/gnome to isolate sid configuration.
GNOME Metadata
config/desktop/sid/environments/gnome/architectures, config/desktop/sid/environments/gnome/support
New files specifying supported architectures (arm64, amd64) and support status (supported).
GNOME Package Dependencies
config/desktop/sid/environments/gnome/config_base/packages
Added armbian-desktop-gnome package dependency.
GNOME Build & Installation Scripts
config/desktop/sid/environments/gnome/armbian/create_desktop_package.sh, config/desktop/sid/environments/gnome/debian/postinst
New shell scripts for assembling desktop assets (greeter configs, icons, wallpapers) and configuring GNOME post-installation (DConf settings, PulseAudio, GLib schemas).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Areas requiring extra attention:

  • create_desktop_package.sh: Verify all file paths, directory creation logic, and heredoc XML generation correctness
  • postinst: Check conditional logic, DConf configuration syntax, and ensure PulseAudio modification is safe across versions
  • Confirm marker files are correctly recognized by the build system
  • Validate architecture specifications align with intended deployment targets

Possibly related PRs

Suggested reviewers

  • igorpecovnik
  • rpardini
  • EvilOlaf

Poem

🐰 Hoppity-hop, the sid branch takes flight,
With GNOME so polished, the desktop shines bright,
Scripts craft the wallpapers, dconf sings its tune,
Armbian's growing gardens—a fine afternoon! 🎨✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main purpose of the changes: linking questing and resolute release pockets to sid by adding configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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/medium PR with more then 50 and less then 250 lines 11 Milestone: Fourth quarter release Desktop Graphical user interface Needs review Seeking for review Framework Framework components labels Nov 26, 2025
@leggewie leggewie mentioned this pull request Nov 26, 2025
8 tasks
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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/questing file.

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/$destination usage 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 for sleep-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 so dconf update applies the setting cleanly.

You can verify with something like gsettings range org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout on 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 6aa7828 and 4f8c901.

📒 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/resolute
  • config/cli/questing
  • config/desktop/resolute
  • config/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/resolute
  • config/cli/questing
  • config/desktop/resolute
  • config/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/packages
  • config/desktop/sid/environments/gnome/armbian/create_desktop_package.sh
  • config/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:

  1. Build system interpretation of single-line redirect files
  2. Newline inconsistency across config/cli/questing, config/cli/resolute, config/desktop/questing, and config/desktop/resolute

Without 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 support file 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-gnome fits 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, amd64 is consistent with typical desktop-capable targets; format looks fine.

@tabrisnet
Copy link
Collaborator

@leggewie how concerned should we be that the extension hook [post_armbian_repo_customize_image__install_from_apa] is never called??

@leggewie
Copy link
Collaborator Author

leggewie commented Nov 26, 2025

@leggewie how concerned should we be that the extension hook [post_armbian_repo_customize_image__install_from_apa] is never called??

I cannot verify that, check line 4224 in https://paste.armbian.com/rusevahupu for example

@tabrisnet
Copy link
Collaborator

@leggewie how concerned should we be that the extension hook [post_armbian_repo_customize_image__install_from_apa] is never called??

I cannot verify that

I think I can. I took your PR, made it into a branch. then applied a small patch.

tabris@brunnt:~/build/armbian-build$ git diff
diff --git a/extensions/apa.sh b/extensions/apa.sh
index 3092cd94b..8e7298d26 100644
--- a/extensions/apa.sh
+++ b/extensions/apa.sh
@@ -10,6 +10,7 @@ function custom_apt_repo__add_apa() {
 }
 
 function post_armbian_repo_customize_image__install_from_apa() {
+       display_alert "in post_armbian_repo_customize_image__install_from_apa" "APA extension" "info"
        # do not install armbian recommends for minimal images
        [[ "${BUILD_MINIMAL,,}" =~ ^(true|yes)$ ]] && INSTALL_RECOMMENDS="no-install-recommends" || INSTALL_RECOMMENDS="install-recommends"
        chroot_sdcard_apt_get install --$INSTALL_RECOMMENDS armbian-common armbian-bsp

then checked the log for the keyword post_armbian_repo_customize_image__install_from_apa
https://paste.armbian.com/eboqojayed
the keyword is not there, but the log does say that APA is enabled.

@tabrisnet
Copy link
Collaborator

tabrisnet commented Nov 26, 2025

@leggewie how concerned should we be that the extension hook [post_armbian_repo_customize_image__install_from_apa] is never called??

I cannot verify that, check line 4224 in https://paste.armbian.com/rusevahupu for example

I expect that's b/c I'm just generating the rootfs and you're doing a full image build.
but given that the rootfs is supposed to contain the desktop-environment or not, that would mean APA is currently broken.

@leggewie
Copy link
Collaborator Author

leggewie commented Nov 26, 2025

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?

@leggewie
Copy link
Collaborator Author

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 lib/functions/rootfs/customize.sh would give me something, given its name. Alas, the functions in there are apparently also limited to those dealing with the image and not just the rootfs. lib/functions/main/rootfs-image.sh also had nothing that immediately jumped out before post_armbian_repo_customize_image is called.

So, at this point buildling only a rootfs with APA is not supported but I'm sure we will get there.

@leggewie
Copy link
Collaborator Author

APA is currently broken

Alright, turns out that your ./compile.sh artifact WHAT=rootfs is after all undocumented. Disparagingly making broad statements "never called" and "APA is broken" based on the use of undocumented features is pretty rich, I'd say. Maybe dial it back a little?

@tabrisnet
Copy link
Collaborator

tabrisnet commented Nov 26, 2025

APA is currently broken

Alright, turns out that your ./compile.sh artifact WHAT=rootfs is after all undocumented. Disparagingly making broad statements "never called" and "APA is broken" based on the use of undocumented features is pretty rich, I'd say. Maybe dial it back a little?

I only know about this undocumented command b/c it was revealed to me during some mmdebstrap work from the automated build pipelines.
#8785 (comment) <-- from igor
https://paste.armbian.com/utonufosek

As to the legitimacy of "is broken", the statement has nothing to do with whether artifact WHAT=rootfs is documented, and everything to do with the ideas that:

  • extensions/apa.sh is supposed to install armbian-desktop-gnome or one of its many friends
  • the rootfs tarball is namespaced as to whether it's a minimal/cli/desktop-gnome/desktop-xfce etc
  • if we rely solely on extensions/apa.sh and not config/desktop/***/environments/gnome/config_base/packages containing armbian-desktop-gnome [b/c iiuc with APA config/desktop/foo isn't supposed to exist], the rootfs tarball [that purports to have gnome in it] won't contain gnome. the image then gets fixed up later, but then does not benefit from the caching that the system assumes.

Right now the build system has enough [sanity-]checks from before APA that running a compile.sh build BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome without all of config/desktop isn't possible, so I guess in that sense it can't be said that extensions/apa.sh is breaking anything. I'm just showing you the things that would be otherwise discovered later when you rip out config/desktop/{sid,questing,resolute}.

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".

@tabrisnet
Copy link
Collaborator

tabrisnet commented Nov 27, 2025

It occurs to me that I may not have been clear enough... when doing a compile.sh build it, among other things, always generates a rootfs tarball and caches it, e.g. cache/rootfs/rootfs-arm64-bookworm-gnome-desktop_202511-aa84ea840e0f-H7f4843-B850b0f.tar.zst <--
Then subsequent runs for different boards but the same arch/release/desktop that tarball gets reused [unless ARTIFACT_IGNORE_CACHE=yes is specified anyway].
this isn't über important when doing development [where one often will use the above cache ignoring switch] or one-shot board builds, but is very important for the automated pipeline.
the artifact WHAT=rootfs is used in said pipeline to prep/upload these tarballs to github [https://github.com/orgs/armbian/packages] so the pipeline can run faster/more-efficiently.

@@ -0,0 +1 @@
sid No newline at end of file
Copy link
Collaborator

@tabrisnet tabrisnet Nov 28, 2025

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.

Copy link
Collaborator

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.

Copy link
Collaborator Author

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].

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/packages should not contain armbian-desktop-gnome but rather something more innocuous like armbian-common.

Why is that?

Right now, having extensions/apa.sh install armbian-desktop-gnome is redundant if it gets installed already by the old machinery.

Why is that?

Kindly explain, I am not seeing the problem yet.

Copy link
Collaborator

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.

Copy link
Collaborator Author

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.

Copy link
Collaborator

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/resolute are in the automated builds. Which they probably aren't [yet, we have 3-6 months before resolute is 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 support questing or sid builds & we shouldn't support resolute before its actual release and likely not until Armbian 2026.5. The reason to unlink sid from questing/resolute is that there may be a community expectation that sid did work and we shouldn't intentionally break it. This expectation cannot exist for questing/resolute as they weren't options until a few weeks ago.
    Meanwhile, iiuc, the goal is to rip out the majority of config/{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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

11 Milestone: Fourth quarter release Desktop Graphical user interface Framework Framework components Needs review Seeking for review size/medium PR with more then 50 and less then 250 lines

Development

Successfully merging this pull request may close these issues.

2 participants