build icon indicating copy to clipboard operation
build copied to clipboard

link questing and resolute release pocket to sid

Open leggewie opened this issue 1 month ago • 10 comments

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.

leggewie avatar Nov 26 '25 00:11 leggewie

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

  • armbian/build#8559: Modifies the same config/desktop/sid/environments/gnome path, removing trixie references for sid isolation
  • armbian/build#8983: Adds/removes distribution-specific ("noble", "sid") entries across similar config/cli and config/desktop package-definition files

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.

coderabbitai[bot] avatar Nov 26 '25 00:11 coderabbitai[bot]

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

tabrisnet avatar Nov 26 '25 00:11 tabrisnet

@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

leggewie avatar Nov 26 '25 01:11 leggewie

@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 avatar Nov 26 '25 01:11 tabrisnet

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

tabrisnet avatar Nov 26 '25 01:11 tabrisnet

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 avatar Nov 26 '25 02:11 leggewie

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 avatar Nov 26 '25 02:11 leggewie

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?

leggewie avatar Nov 26 '25 02:11 leggewie

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. https://github.com/armbian/build/pull/8785#issuecomment-3481977412 <-- 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 avatar Nov 26 '25 11:11 tabrisnet

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.

tabrisnet avatar Nov 27 '25 02:11 tabrisnet

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.

I believe #9085 should address this

leggewie avatar Dec 17 '25 07:12 leggewie

Simple fact this is even being considered shows that aggregation (and not APA) is what need fixing (and that APA is not the fix).

rpardini avatar Dec 17 '25 14:12 rpardini