Skip to content

Flowey: disable implicit apt recommendations to expose undeclared build dependencies #4744

Closed

Description

@jstarks

Flowey should consider using apt-get install --no-install-recommends on Ubuntu so required build packages must be explicitly declared rather than arriving incidentally through recommendations.

PR #4740 exposed a gap when switching to the prepped Linux image: the ARM64 cross-compiler was already present, so Flowey skipped package installation, but ARM64 glibc headers and startup objects were unavailable. The shared VMM-test artifact build failed on missing Scrt1.o/crti.o, and the ARM64 OpenVMM build failed on missing sys/types.h and bits/libc-header-start.h in SQLite/OpenSSL builds. See https://github.com/microsoft/openvmm/actions/runs/40040988856.

init_cross_build requested gcc-aarch64-linux-gnu, whose Ubuntu package only recommends libc6-dev-arm64-cross. A normal fresh apt install pulls that recommendation in and masks the incomplete declaration; a preinstalled compiler does not. The specific missing dependency is being addressed separately in #4740.

Suggested follow-up: add --no-install-recommends to the Ubuntu installation path in flowey/flowey_lib_common/src/install_dist_pkg.rs, audit and explicitly declare required packages in the requesting nodes, and validate on a minimal image without optional recommended packages already installed. Keep image provisioning consistent with this policy where appropriate. Existing prepped images alone will not expose every undeclared dependency, and this is not a request to remove packages from developer machines.

The goal is for explicitly declared packages and their hard dependencies to be sufficient, regardless of whether CI starts from a base or prepped image.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions