build providers: wait for systemd and better nameserver setup on LXD
Metadata
Current evaluation
Merged. Updated LXD build provider to handle systemd degraded state, enable core20 tests, and configure nameserver resolution via systemd-resolved with env var override. Approved, passed CI, +154/-50 lines across 8 files.
Suggested action: —
No scores available.
Issue body
systemd has a sub-command "is-system-running", we care about two
results:
- running: which is implied with exit code 0
- degraded: which exits with code 1, for which we need to parse the
output.
The reason to parse for degraded is that LXD containers usually work
with systemd in a degraded state.
Additionally enable the build-provider test suite for core20, also
using the common make-hello instead of the in "suite" one (symlinked).
when systemd-resolved is running on the system, it will write the
actual resolv.conf in a prescribed location, which is now picked up as
the default to use the best local-to-host nameserver. The use of the
environment variable still overrides any setting for the cases where
it may be needed.
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Updated LXD build provider to handle systemd degraded state, enable core20 tests, and configure nameserver resolution via systemd-resolved with env var override. Approved, passed CI, +154/-50 lines across 8 files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged updates to build providers that handle systemd's degraded state on LXD, improve nameserver configuration via systemd-resolved, and enable the core20 test suite. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged build provider updates that wait for systemd, handle LXD's degraded state, and improve nameserver setup via systemd-resolved. Also enables the core20 test suite. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3141 build providers: use LXD-provided DNS by default | snapcraft | merged | Merged into master. Configures the host to use systemd-resolved for DNS resolution, leveraging LXD-provided DNS by default. Approved with passing CI checks and 100% diff coverage across two files. | |
| #2966 build providers: move to buildd images | snapcraft | merged | Merged. Moves build providers to buildd images, enabling multi-architecture and core20 support for LXD. Approved, passed CI, and addressed reviewer feedback on network wait logic. | |
| #3281 build providers: hide systemd setup for LXD | snapcraft | merged | Merged to hide verbose systemd setup output for LXD build providers. Approved by one reviewer, passed CI, and modified two files to streamline console output while preserving internal debug visibility. | |
| #2647 build providers: catch LXD socket error | snapcraft | merged | Merged to catch LXD socket errors in build providers, resolving SNAPCRAFT-WA. Approved by reviewer, passed CI checks, and integrated with a 14-line addition and 6-line deletion across three files. Minor test coverage decrease noted but did not block merge. | |
| #2964 build providers: remove LXD specific env setup | snapcraft | merged | Merged. Removes LXD-specific environment setup from build providers since Provider._get_env_command already handles it. Approved by reviewer, passed CI, and successfully integrated. | |
| #5519 Docs: Multiple errors related to build provider installation | snapcraft | closed | Documentation updates applied to correct sudo usage and LXD configuration steps. Hardware capacity tips and tutorial LXD instructions were abandoned after maintainers confirmed core22+ build providers lack support for those configurations. Issue closed. | |
| #3098 build providers: bootstrap with dirmngr | snapcraft | merged | Merged following approval and CI checks. Adds dirmngr to core20 bootstrapping requirements and switches package repositories to use lxd explicitly for a minimalist build environment. Modified 3 files with a +6/-3 line diff. | |
| #3271 build providers: use the releases endpoint for LXD | snapcraft | merged | Merged a two-file change switching the simplestreams endpoint from daily to releases for LXD image retrieval. Approved by one reviewer, passed CI checks, and completed despite noted unrelated test failures. | |
| #2631 spread tests: enable LXD build provider tests | snapcraft | merged | Merged into master. Enabled LXD build provider tests by relocating setup to the early prepare phase to reduce overhead and consolidating declarations from task.yaml to spread.yaml. Approved, passed CI, and increased coverage by 0.01%. | |
| #3521 build providers: set hostname for lxd | snapcraft | merged | Merged. Fixes LXD build provider hostname configuration by running hostname -F to notify the kernel after updating /etc/hostname. Approved by reviewers, passed CI, and achieved 100% coverage. |