Fix build: handle missing ubuntu.sources for deb-src#283
Fix build: handle missing ubuntu.sources for deb-src#283rollandf merged 1 commit intoMellanox:mainfrom
Conversation
Check for the existence of /etc/apt/sources.list.d/ubuntu.sources before modifying it, falling back to /etc/apt/sources.list if needed. This fixes build failures on base images where the sources file location differs. Signed-off-by: Fred Rolland <frolland@nvidia.com>
Greptile OverviewGreptile SummaryThis PR updates both Confidence Score: 3/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Builder as Docker build
participant FS as Base image filesystem
participant APT as apt-get
Builder->>FS: Check /etc/apt/sources.list.d/ubuntu.sources exists?
alt ubuntu.sources present
Builder->>FS: sed Types: deb -> Types: deb deb-src
else ubuntu.sources absent
Builder->>FS: Check /etc/apt/sources.list exists?
alt sources.list present
Builder->>FS: sed uncomment deb-src lines
else sources.list absent
Note over Builder,FS: No change to APT sources
end
end
Builder->>APT: apt-get update
Builder->>APT: apt-get install dpkg-dev...
Builder->>APT: apt-get source dpkg-dev...
|
| RUN if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then \ | ||
| sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources; \ | ||
| elif [ -f /etc/apt/sources.list ]; then \ | ||
| sed -i 's/^#\s*deb-src/deb-src/' /etc/apt/sources.list; \ | ||
| fi |
There was a problem hiding this comment.
deb-src enablement is incomplete
In the /etc/apt/sources.list fallback, this only uncomments existing deb-src lines (s/^#\s*deb-src/deb-src/). On images where deb-src entries are absent (common for minimal bases), this won’t enable source repos, and apt-get source ${PACKAGES} will still fail. If the goal is to reliably enable deb-src across bases, this branch likely needs to also add matching deb-src entries when none exist (or transform deb → deb-src lines) rather than only uncommenting.
| RUN if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then \ | ||
| sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources; \ | ||
| elif [ -f /etc/apt/sources.list ]; then \ | ||
| sed -i 's/^#\s*deb-src/deb-src/' /etc/apt/sources.list; \ | ||
| fi |
There was a problem hiding this comment.
deb-src enablement is incomplete
Same as Dockerfile: the /etc/apt/sources.list fallback only uncomments pre-existing deb-src lines. If the base image’s sources.list doesn’t contain any deb-src entries, apt-get source ${PACKAGES} can still fail even though this block ran. Consider adding deb-src entries (or transforming corresponding deb lines) when no deb-src lines exist, instead of only uncommenting.
Check for the existence of /etc/apt/sources.list.d/ubuntu.sources before modifying it, falling back to /etc/apt/sources.list if needed. This fixes build failures on base images where the sources file location differs.