Provides and NBS
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_
[...]
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:/
## 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/
# In auto/config, change line 42 to read the following (with proper indentation of course):
## i386|amd64) MIRROR=https:/
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/
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
- Julian Andres Klode: Disapprove
- Steve Langasek: Pending requested
- Michael Hudson-Doyle: Pending requested
- Germinate hackers: Pending requested
-
Diff: 32 lines (+14/-0)1 file modifiedgerminate/germinator.py (+14/-0)