Provides and NBS

Bug #2056483 reported by Simon Quigley
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
germinate (Ubuntu)
New
Undecided
Unassigned

Bug Description

## Issue at hand

Yesterday's livefs builds for Lubuntu and other flavors were failing[1] due to an issue with dependency resolution.

efivar and mokutil both depend on libefivar1. efivar (both the name of the source and of a binary, referring to the source in this case) was updated for the time_t transition, causing a binary package rename from libefivar1 to libefivar1t64, but still Providing libefivar1.

efivar is installed at an earlier stage of the build (and is in one of the more core seeds), which pulls in libefivar1t64. mokutil then tries to bring in libefivar1 at a later stage, but fails because libefivar1 existed as an NBS binary.

Specific error:
[2024-03-07 00:41:28] lb_chroot_install-packages live
[...]
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libefivar1t64 : Breaks: libefivar1 (< 38-3.1)

Germinate did track that libefivar1 is provided by libefivar1t64, but does not reflect that further up in the stack.

[1] https://launchpadlibrarian.net/717897291/buildlog_ubuntu_noble_amd64_lubuntu_BUILDING.txt.gz

## Steps to reproduce

Prereqs:
 - A noble container or system with root access (run the following commands in a root shell)
 - A decent internet connection

--------

apt -y install live-build livecd-rootfs
cd <SOMEWHERE>
mkdir build && cd build && mkdir auto
for i in /usr/share/livecd-rootfs/live-build/auto/*; do ln -s $i auto/; done
# In auto/config, change line 42 to read the following (with proper indentation of course):
## i386|amd64) MIRROR=https://snapshot.ubuntu.com/ubuntu/20240307T003614Z/ ;;
export SUITE="noble" ARCH="amd64" PROJECT="lubuntu"
lb clean --purge
lb config
lb build

## Potential Solution

The absolute best potential solution I can think of would be to ask Germinate to examine Provides prior to adding the package. I could see something like this being around line 1825 in germinate/germinator.py.

What I'd like to know from the current Germinate maintainers is, what do you think? Is this something Germinate should be able to plan for? Any rules of thumb when doing dependency resolution? Is there a Somewhat Easy way of falling back to apt for this?

Related branches

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.