rely on APA for bootstrapping
Description
fixes for APA, with caveat that it only really works now for desktop builds. This isn't a good idea to merge until there's more work on APA itself, specifically minimal & CLI meta-packages.
alternative to #8999, trying to fix #8965 armbian/apa#25 has to be merged/deployed first.
How Has This Been Tested?
- [x]
time ./compile.sh artifact WHAT=rootfs BOARD=rock-5b BRANCH=current BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome BUILD_MINIMAL=no RELEASE=questing KERNEL_CONFIGURE=no KERNEL_GIT=full MANAGE_ACNG='http://squid.tabris.net:3142/' COMPRESS_OUTPUTIMAGE=xz DEB_COMPRESS=xz ARTIFACT_IGNORE_CACHE=yes- https://paste.armbian.com/epezelamum
- [x]
time ./compile.sh artifact WHAT=rootfs BOARD=rock-5b BRANCH=current BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome BUILD_MINIMAL=no RELEASE=noble KERNEL_CONFIGURE=no KERNEL_GIT=full MANAGE_ACNG='http://squid.tabris.net:3142/' COMPRESS_OUTPUTIMAGE=xz DEB_COMPRESS=xz ARTIFACT_IGNORE_CACHE=yes- https://paste.armbian.com/pusupudebu
- [ ]
sidfails
Checklist:
Please delete options that are not relevant.
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] 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
-
New Features
- Added support for a new desktop environment variant with multiple desktop managers: GNOME, Cinnamon, KDE Plasma, XFCE, i3-wm, and KDE Plasma Mobile.
- Added custom wallpapers and branding assets for GNOME desktop.
- Enhanced architecture support across multiple desktop environments.
-
Improvements
- Desktop configuration now conditional based on system state for better integration with package management.
βοΈ Tip: You can customize this high-level summary in your review settings.
[!IMPORTANT]
Review skipped
Draft detected.
Please check the settings in the CodeRabbit UI or the
.coderabbit.yamlfile in this repository. To trigger a single review, invoke the@coderabbitai reviewcommand.You can disable this status message by setting the
reviews.review_statustofalsein the CodeRabbit configuration file.
Walkthrough
This PR introduces desktop environment configuration for the Questing variant and gates desktop installation behind the APA extension. It adds configuration files for GNOME, Cinnamon, KDE Plasma, i3-wm, and XFCE environments, modifies rootfs bootstrap argument construction to be conditional, and implements APA lifecycle hooks in the build flow.
Changes
| Cohort / File(s) | Summary |
|---|---|
Desktop sanity check gating lib/functions/main/config-prepare.sh |
Desktop environment checks now skip when APA_IS_ACTIVE is true, deferring desktop setup to the APA extension |
Rootfs bootstrap conditionals lib/functions/rootfs/rootfs-create.sh |
Debootstrap arguments built conditionally based on AGGREGATED_PACKAGES_DEBOOTSTRAP_COMMA and AGGREGATED_DEBOOTSTRAP_COMPONENTS_COMMA; added APA hook invocations (post_armbian_repo_customize_image__install_from_apa) |
Desktop configuration gating lib/functions/configuration/config-desktop.sh |
Early-return gate added: skips interactive desktop configuration when APA_IS_ACTIVE is unset |
CLI Questing configuration config/cli/questing/debootstrap/components, config/cli/questing/debootstrap/packages, config/cli/questing/main/config_desktop, config/cli/questing/main/packages |
New configuration files for Questing CLI variant; debootstrap packages reference locales and apt; configuration delegated to common paths |
CLI Questing resolver config/cli/resolute |
Points to "questing" |
GNOME Questing desktop environment config/desktop/questing/environments/gnome/architectures, config/desktop/questing/environments/gnome/config_base/packages, config/desktop/questing/environments/gnome/support, config/desktop/questing/environments/gnome/debian, config/desktop/questing/environments/gnome/armbian/create_desktop_package.sh |
GNOME desktop configuration; armbian script installs LightDM, creates desktop skeleton, icons, wallpapers, and generates armbian.xml wallpaper metadata |
Cinnamon Questing desktop environment config/desktop/questing/environments/cinnamon/architectures, config/desktop/questing/environments/cinnamon/config_base/packages, config/desktop/questing/environments/cinnamon/support, config/desktop/questing/environments/cinnamon/armbian, config/desktop/questing/environments/cinnamon/debian |
Cinnamon desktop configuration; references GNOME packages and delegated to plucky armbian/debian paths |
i3-wm Questing desktop environment config/desktop/questing/environments/i3-wm/architectures, config/desktop/questing/environments/i3-wm/armbian, config/desktop/questing/environments/i3-wm/config_base/packages, config/desktop/questing/environments/i3-wm/debian, config/desktop/questing/environments/i3-wm/support |
i3-wm desktop configuration; references delegated to common and plucky paths; packages reference GNOME |
KDE Plasma Questing desktop environment config/desktop/questing/environments/kde-plasma/architectures, config/desktop/questing/environments/kde-plasma/config_base/packages, config/desktop/questing/environments/kde-plasma/support, config/desktop/questing/environments/kde-plasma/debian |
KDE Plasma configuration; references plucky debian path and GNOME packages |
KDE Plasma Mobile Questing environment config/desktop/questing/environments/kde-plasma-mobile |
References "kde-plasma" |
XFCE Questing desktop environment config/desktop/questing/environments/xfce/architectures, config/desktop/questing/environments/xfce/config_base/packages, config/desktop/questing/environments/xfce/support, config/desktop/questing/environments/xfce/armbian, config/desktop/questing/environments/xfce/debian |
XFCE configuration; broader architecture support (arm64, amd64, armhf, riscv64); references plucky paths and GNOME packages |
Desktop Questing resolver and appgroups config/desktop/resolute, config/desktop/questing/appgroups |
Desktop resolver points to "questing"; appgroups references plucky appgroups |
Estimated code review effort
π― 3 (Moderate) | β±οΈ ~25 minutes
- Path correctness verification: Over 30 new config files with relative path references to common, plucky, and gnome paths require confirmation that all references resolve correctly
- APA hook duplication in rootfs-create.sh: The post_armbian_repo_customize_image__install_from_apa hook appears twice in the script; verify intentionality and correct hook invocation context
- Package list consistency: Verify that package lists (locales, apt) and component references are appropriate for Questing variant given the linked bug about missing/problematic packages
- Desktop environment completeness: Ensure all desktop environment configurations (GNOME, Cinnamon, i3-wm, KDE Plasma, XFCE) have complete and consistent architecture/support declarations
- GNOME armbian script validation: The new create_desktop_package.sh script with wallpaper metadata generation should be verified for correctness and completeness
Possibly related PRs
- armbian/build#8969: Directly enables the APA extension for Questing and Resolute, which this PR integrates through APA_IS_ACTIVE gating and hook invocations
- armbian/build#8133: Introduces the APA extension and post_armbian_repo_customize_image__install_from_apa hook function that this PR now calls
- armbian/build#8983: Removes Questing/Resolute symlinks to "noble" because APA now manages packages, complementing this PR's package management changes
Suggested reviewers
- igorpecovnik
- rpardini
- EvilOlaf
Poem
π° Questing hops into focus, With desktops now delegated to APA, Wallpapers bloom like clover, While packages find their true home, The build path resolves at last! π±
Pre-merge checks and finishing touches
β Failed checks (1 warning)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | β οΈ Warning | Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. | You can run @coderabbitai generate docstrings to improve docstring coverage. |
β Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | β Passed | The title 'rely on APA for bootstrapping' clearly summarizes the main change: integrating APA (Armbian Package Assistant) into the bootstrapping process for rootfs creation. |
| Linked Issues check | β Passed | The PR addresses issue #8965 by implementing APA-based bootstrapping to resolve package resolution failures in Questing desktop builds, with successful desktop builds confirmed for gnome and kde-plasma environments. |
| Out of Scope Changes check | β Passed | All changes are scoped to APA integration: conditional desktop checks, debootstrap argument building, APA hook invocations, and new Questing environment configurations align with the bootstrapping objective. |
| Description Check | β Passed | Check skipped - CodeRabbitβs high-level summary is enabled. |
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 @coderabbitai help to get the list of available commands and usage tips.
current status: busted
@leggewie
time ./compile.sh artifact WHAT=rootfs BOARD=rock-5b BRANCH=current BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome BUILD_MINIMAL=no RELEASE=questing KERNEL_CONFIGURE=no KERNEL_GIT=full MANAGE_ACNG='http://squid.tabris.net:3142/' COMPRESS_OUTPUTIMAGE=xz DEB_COMPRESS=xz ARTIFACT_IGNORE_CACHE=yes
https://paste.armbian.com/colanibemi
[π³|π¨] removed '/armbian/.tmp/rootfs-47103777-e85c-49ca-a59d-77ce6c1e92b0/etc/resolv.conf'
[π³|π¨] rm: cannot remove '/armbian/.tmp/rootfs-47103777-e85c-49ca-a59d-77ce6c1e92b0/var/lib/dbus/machine-id': No such file or directory
[π³|π₯] Error 1 occurred in main shell [ at /armbian/lib/functions/logging/runners.sh:223
run_host_command_logged_raw() --> lib/functions/logging/runners.sh:223
run_host_command_logged() --> lib/functions/logging/runners.sh:205
create_new_rootfs_cache_via_debootstrap() --> lib/functions/rootfs/rootfs-create.sh:355
create_new_rootfs_cache() --> lib/functions/rootfs/create-cache.sh:70
do_with_logging() --> lib/functions/logging/section-logging.sh:81
artifact_rootfs_build_from_sources() --> lib/functions/artifacts/artifact-rootfs.sh:81
artifact_build_from_sources() --> lib/functions/artifacts/artifacts-obtain.sh:34
obtain_complete_artifact() --> lib/functions/artifacts/artifacts-obtain.sh:280
do_with_default_build() --> lib/functions/main/default-build.sh:42
cli_artifact_run() --> lib/functions/cli/cli-artifact.sh:72
armbian_cli_run_command() --> lib/functions/cli/utils-cli.sh:136
cli_entrypoint() --> lib/functions/cli/entrypoint.sh:208
main() --> compile.sh:50
]
[π³|π₯] Cleaning up [ please wait for cleanups to finish ]
status: working, but the APA hook needs some adjustments. https://paste.armbian.com/epezelamum
I think I have an idea for a quicker way to transition that will be less disruptive
- [ ]
sidfails:time ./compile.sh artifact WHAT=rootfs BOARD=rock-5b BRANCH=current BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome BUILD_MINIMAL=no RELEASE=sid KERNEL_CONFIGURE=no KERNEL_GIT=full MANAGE_ACNG='http://squid.tabris.net:3142/' COMPRESS_OUTPUTIMAGE=xz DEB_COMPRESS=xz ARTIFACT_IGNORE_CACHE=yes- https://paste.armbian.com/uyidelapuv
[π³|π±] Installing 0 desktop packages [ sid gnome ]
[π³|π¨] E: Unable to satisfy dependencies. Reached two conflicting decisions:
[π³|π¨] 1. armbian-common:arm64=251126.4 is selected for install
[π³|π¨] 2. armbian-common:arm64 Depends linux-image
[π³|π¨] but none of the choices are installable:
[π³|π¨] [no choices]
[π³|π₯] Error 1 occurred in main shell [ at /armbian/extensions/apa.sh:15
post_armbian_repo_customize_image__install_from_apa() --> extensions/apa.sh:15
create_new_rootfs_cache_via_debootstrap() --> lib/functions/rootfs/rootfs-create.sh:338
create_new_rootfs_cache() --> lib/functions/rootfs/create-cache.sh:70
do_with_logging() --> lib/functions/logging/section-logging.sh:81
artifact_rootfs_build_from_sources() --> lib/functions/artifacts/artifact-rootfs.sh:81
artifact_build_from_sources() --> lib/functions/artifacts/artifacts-obtain.sh:34
obtain_complete_artifact() --> lib/functions/artifacts/artifacts-obtain.sh:280
do_with_default_build() --> lib/functions/main/default-build.sh:42
cli_artifact_run() --> lib/functions/cli/cli-artifact.sh:72
armbian_cli_run_command() --> lib/functions/cli/utils-cli.sh:136
cli_entrypoint() --> lib/functions/cli/entrypoint.sh:208
main() --> compile.sh:50
my suggestion is #9001 and to gradually simplify sid over time as more logic has shifted over and been tested in APA
sidfails
let me have a look at that
sidfails:
this appears to be specific to the board in question, my guess is the Armbian kernel for the rock-5b fails to provide the linux-image virtual package and it really should.
On my Banana Pi M2+ the armbian kernel package for that board does indeed provide linux-image and hence fulfills the dependency.
Furthermore, the quickest I could test this was 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=sid SHARE_LOG=yes and that compiled just fine
Make APA somewhat useful,
BTW, I don't appreciate your categorization of APA as useless, especially when you don't understand what it does in a number of ways.
Breakage with APA was to be expected and as you can see I am dealing with it swiftly and it is being brought in as a canary for edge release pockets where breakage should be expected. Armbian will have a much more sane and manageable way going forward with APA, so no it is not useless at all.
a) I am not intending to throw shade at anyone b) at no point was I saying it would never be useful. The goal is to make it more useful, to live up to its ambitions.
Despite being a Debian user [for personal stuff] for many many years, I know more of RPM spec files [as working on RH derivatives used to pay my bills] than debian pkgs, so this is also a learning opportunity for me.
so right now, tritium-h5 doesn't boot. still looking into it.
./compile.sh build BOARD=tritium-h5 BRANCH=current BUILD_MINIMAL=yes COMPRESS_OUTPUTIMAGE=xz DEB_COMPRESS=xz KERNEL_CONFIGURE=no KERNEL_GIT=full MANAGE_ACNG=http://squid.tabris.net:3142/ RELEASE=questing
modifying armbianEnv verbosity=6 got me this: https://paste.next.armbian.com/azugusuhan.vbnet
3rd attempt with [probably coincidentally] verbosity=7 did boot but didn't do the firstboot [user creation, locales, et al] stuff until I manually logged in as root [from serial console]
Subsequently,
/etc/cron.daily/armbian-quotes: line 3: curl: command not found
run-parts: /etc/cron.daily/armbian-quotes exited with return code 127
### Armbian-unofficial ###
v26.02 rolling for Tritium running Armbian Linux 6.12.61-current-sunxi64
Packages: Ubuntu rolling (questing)
Support: DIY (custom image)
Performance:
Load: 12% Uptime: 4 minutes
Memory usage: 6% of 1.93G
CPU temp: 32Β°C Usage of /: 91% of 1.1G
Commands:
Configuration : armbian-config
root@tritium-h5:~# wget
-bash: wget: command not found
root@tritium-h5:~# curl
-bash: curl: command not found
root@tritium-h5:~#
so it clearly expects curl, and neither curl nor wget are present, plus figlet is missing
and for another observation... the root FS did not get resized.
and there's no less
so if I had to guess the first problem with not booting, it wasn't connected to the network, so it hung. this likely needs looking into and another issue created for that. @coderabbitai This may also be Ubuntu/questing specific.
[!TIP] For best results, initiate chat on the files or code changes.
π§© Analysis chain
@tabrisnet: Thank you for the detailed observation. You've identified several distinct issues with the minimal questing build on tritium-h5:
- Boot hang (suspected network wait) - likely systemd waiting on network-online.target
- Missing core utilities - curl, wget, figlet, less
- Firstboot scripts not running automatically
- Root filesystem not resized
These issues suggest that the APA-based bootstrapping for minimal builds may not be including the necessary packages or that the minimal package set isn't properly defined yet for questing.
Let me investigate the current minimal package configuration and boot dependencies:
Based on the findings, I can help create a comprehensive issue tracking these problems. Would you like me to create an issue now, or would you prefer to wait until we have more details about the root cause?
π Script executed:
#!/bin/bash
# Find minimal package configuration for questing
echo "=== Checking questing minimal package configuration ==="
fd -t f "packages" config/cli/questing/ -x cat {}
echo -e "\n=== Checking if minimal meta-packages exist for questing ==="
fd -t f -e txt -e conf config/cli/questing/ -x echo "File: {}" \; -x cat {}
echo -e "\n=== Looking for firstboot and resize scripts ==="
rg -n "firstboot|armbian-firstrun" --type=sh -g '!.git' | head -20
echo -e "\n=== Checking for network-online dependencies ==="
rg -n "network-online.target|After=network" --type=sh -g '!.git' | head -15
echo -e "\n=== Looking for required utilities in minimal builds ==="
rg -nP "(curl|wget|figlet|less)" config/cli/ -C2 | head -30
Length of output: 3625
π Script executed:
#!/bin/bash
# Let's check the full questing CLI structure
echo "=== Full questing CLI directory structure ==="
fd . config/cli/questing/ --type f -x echo "File: {}" \; -x head -5 {}
echo -e "\n=== Compare with noble CLI structure ==="
fd . config/cli/noble/main/ --type f --max-depth 1 -x basename {}
echo -e "\n=== Check if questing inherits from common or another release ==="
fd . config/cli/questing/ --type f -x cat {} | grep -E "^\.\./|^\.\./"
echo -e "\n=== Look for armbian-bsp-cli package content ==="
rg -n "armbian-bsp-cli" lib/functions/bsp/ -A5 -B5 | head -40
echo -e "\n=== Check resize2fs and filesystem resize ==="
rg -n "resize2fs|armbian-resize-filesystem" --type=sh -g '!.git' | head -15
echo -e "\n=== Check what packages are in armbian-common dependencies ==="
rg -n "Depends:|Recommends:" lib/functions/bsp/armbian-bsp-cli-deb.sh | head -20
Length of output: 4818
@tabrisnet: Great debugging! My investigation confirms your observations. Here's what I found:
Root Cause Analysis
1. Missing Package Definitions
config/cli/questing/debootstrap/packagesonly containslocalesandapt- Other releases (noble, sid, trixie) have
main/packages.additionalwith core utilities - Questing is missing
packages.additionalentirely
2. Missing Core Utilities Looking at noble/sid/trixie, standard CLI builds include:
curl(line 6 in bullseye/main/packages)wget(line 55 in noble/main/packages.additional)figlet(line 16 in bullseye/main/packages)less(implied in base packages)
3. Filesystem Resize Not Running
armbian-resize-filesystem.serviceshould be enabled viadistro-agnostic.sh:481- This may not be triggered when APA handles package installation
4. Firstboot Not Running
armbian-firstrun.serviceshould be enabled viadistro-agnostic.sh:476- The service depends on
armbian-bsp-clipackage being installed with proper dependencies
5. Expected Limitation Your PR description already notes: "not recommended to merge until APA upstream has additional work (notably minimal & CLI meta-packages)" β this is exactly what you're encountering.
Network Boot Hang
The boot hang waiting for network is likely:
- Systemd waiting on
network-online.target - Could be board-specific (tritium-h5) or questing-specific systemd configuration
- Separate from the missing packages issue
Next Steps
Would you like me to create a GitHub issue to track these specific problems? The issue would cover:
- Create questing CLI minimal package definitions (packages.additional)
- Ensure APA installs core utilities: curl, wget, figlet, less
- Verify armbian-firstrun and armbian-resize-filesystem services are enabled with APA path
- Investigate network boot hang on tritium-h5 with questing minimal builds
This would serve as a checklist for what needs to be completed before removing the "Work in progress" label.
π§ Learnings used
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.
Learnt from: amazingfate
Repo: armbian/build PR: 8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.
Learnt from: pyavitz
Repo: armbian/build PR: 8421
File: config/kernel/linux-sunxi64-edge.config:805-825
Timestamp: 2025-07-27T15:53:30.629Z
Learning: In the Armbian build system, kernel configurations prioritize broad hardware compatibility over optimization concerns. Even when including numerous legacy/obsolete drivers causes technical issues like increased initramfs size and slower enumeration, the project philosophy is to "appease the masses" by ensuring maximum device compatibility rather than optimizing for specific use cases.
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: 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: 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: 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.
tried reimaging, same image but verbosity=7 and being patient.
first login did happen.
but some definite hangs unrelated to networking. either systemd or dbus-related methinks.
/etc/cron.daily/armbian-quotes: line 3: curl: command not found
run-parts: /etc/cron.daily/armbian-quotes exited with return code 127
Failed to retrieve unit state: Transport endpoint is not connected
### Armbian-unofficial ###
v26.02 rolling for Tritium running Armbian Linux 6.12.61-current-sunxi64
Packages: Ubuntu rolling (questing)
Support: DIY (custom image)
Failed to retrieve unit state: Transport endpoint is not connected
IPv4: (LAN) 192.168.89.93
Failed to retrieve unit state: Transport endpoint is not connected
Performance:
Load: 2% Uptime: 11 minutes
Memory usage: 6% of 1.93G
CPU temp: 30Β°C Usage of /: 91% of 1.1G
Commands:
Configuration : armbian-config
root@tritium-h5:~# systemctl status dbus
Failed to get properties: Transport endpoint is not connected
root@tritium-h5:~# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p1 1.1G 983M 105M 91% /
systemctl status dbus hangs.
rootfs resize still didn't happen.
resize doesn't work b/c it lacks parted
root@tritium-h5:/etc# echo "nameserver 192.168.82.55" > /etc/resolv.conf
-bash: /etc/resolv.conf: No such file or directory
/etc does exist of course
So it is mostly working with questing. minimal images seem to have some systemd issues where I keep getting Transport endpoint is not connected issues that show up on first boot, and sometimes recur when installing new packages.
Haven't observed this with desktop or CLI images, BUT I haven't tested them as many times as the minimal images.
I did find this issue: systemd/systemd#36192, but poettering just closed it as being an ubuntu problem.
We're pending armbian/apa#32, armbian/apa#33, & armbian/apa#34
More needed even, as we need to empty this variable: declare -g apa_additional_packages="libpam-systemd dbus-user-session parted curl iw less parted locales fdisk"
@Leggewie a) I'm running in bash at the time b) echo is a built-in c) the same error occurs if I try to use nano to write it. But echo makes for a cleaner copy/paste opportunity.Oddly the following workaround works: write to ~root, move it to /etc. I'm thinking [this only just occurred to me at 4AM local time] some kind of apparmor bug. But that nothing else is writing the file is naturally problematic, cuz it prevents apt from functioning, as with anything else needing DNS.I'll look later to see if there's a kernel error about this file. Sent from myPhone. On Dec 11, 2025, at 7:08β―PM, Rolf Leggewie @.***> wrote:ο»Ώleggewie left a comment (armbian/build#9000)
@.***:/etc# echo "nameserver 192.168.82.55" > /etc/resolv.conf -bash: /etc/resolv.conf: No such file or directory
/etc does exist of course
Is it maybe echo or bash that are missing?
βReply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>
or this
lrwxrwxrwx 1 root root 37 Dec 11 17:08 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf
you can't see it in the copy/paste, but it's a broken symlink.
we don't install systemd-resolved by default
We're pending armbian/apa#32, armbian/apa#33, & armbian/apa#34 More needed even, as we need to empty this variable:
declare -g apa_additional_packages="libpam-systemd dbus-user-session parted curl iw less parted locales fdisk"
There's a number of ways to go fix things:
- we add some packages outside APA to ensure they are in minimal images but are not run-time hard dependencies forever (your "declare -g apa_additional_packages")
- add a separate package "armbian-extra" that is removable at run-time without losing APA completely
- change "policy" such that minimal images contain Depends+Recommends of armbian-common and CLI images add Suggests
- drop obsolete code or use alternatives in armbian/build
- properly document TRUE dependencies (script A depends on package B, then it should be packaged and the package should Depends: B)
This will need some thought and time.
We're pending armbian/apa#32, armbian/apa#33, & armbian/apa#34 More needed even, as we need to empty this variable:
declare -g apa_additional_packages="libpam-systemd dbus-user-session parted curl iw less parted locales fdisk"There's a number of ways to go fix things:
- we add some packages outside APA to ensure they are in minimal images but are not run-time hard dependencies forever (your "declare -g apa_additional_packages")
- add a separate package "armbian-extra" that is removable at run-time without losing APA completely
- change "policy" such that minimal images contain Depends+Recommends of armbian-common and CLI images add Suggests
- drop obsolete code or use alternatives in armbian/build
- properly document TRUE dependencies (script A depends on package B, then it should be packaged and the package should Depends: B)
This will need some thought and time.
Here's number 6 that I think we should use for transition. We look for a good hook to add packages to the rootfs (post_armbian_repo_customize_image?, post_aggregate_packages?, ...). This way, we avoid breaking things and keep the code inside the APA extension. Then we can go through 1 to 5 above to deal with each of those packages and see what would be the proper thing to do.
@tabrisnet Do you have a good suggestion which hook to use?
Here's number 6 that I think we should use for transition. We look for a good hook to add packages to the rootfs (post_armbian_repo_customize_image?, post_aggregate_packages?, ...). This way, we avoid breaking things and keep the code inside the APA extension. Then we can go through 1 to 5 above to deal with each of those packages and see what would be the proper thing to do.
@tabrisnet Do you have a good suggestion which hook to use?
it needs to be split into two, as I have.
post_armbian_repo_customize_imagehappens in the image section of the build, which means it doesn't go into rootfs. so I installarmbian-bsphere.post_aggregate_packagesis much too soon. it's beforedebootstrap.- the latest we can install
armbian-commonispost_debootstrap_tweaks, but that is significantly afterapt_purge_unneeded_packages_and_clean_apt_caches
So I think we need our own hook. perhaps post_debootstrap_install_additional
- change "policy" such that minimal images contain Depends+Recommends of armbian-common and CLI images add Suggests
Or not rely on armbian-common and depends vs recommends vs suggests. Relying thereon feels a bit subtle to me. Not fragile in the technical sense but the human one.
armbian-minimal & armbian-cli even with Recommends is an option too.
- drop obsolete code or use alternatives in armbian/build
the goal yes is to drop the obsolete code eventually, but it's a bad transition strategy as it's all-or-nothing. My expectation was to drop the old code no sooner than the 2026.5 release, while trying to get APA fully functional by 2026.2. Alternatively, fully functional by .5 and drop the old code shortly thereafter.
You said "use alternatives". Does Armbian have such a mechanism? I haven't seen it, but that's not saying much.
4. drop obsolete code or use alternatives in armbian/build
[...]
You said "use alternatives". Does Armbian have such a mechanism? I haven't seen it, but that's not saying much.
I am not referring to a "Debian alternatives"-like thing. But simply a situation where you are using command A from the A-package but you could achieve the same result with program B. Think of replacing sed with awk. In case doing so solves a problem for you.
the goal yes is to drop the obsolete code eventually, but it's a bad transition strategy as it's all-or-nothing.
This is another misunderstanding. When I talk of dropping old code above in number 4 on the list, I am talking about what happened in #9033, for example. Not about yanking out aggregation, that's not even really much of a priority for me.
So I think we need our own hook. perhaps
post_debootstrap_install_additional
what do you think of #9085 ?
I suggest to deal with these things one by one.