[Bug 2056483] [NEW] Provides and NBS
Simon Quigley
2056483 at bugs.launchpad.net
Thu Mar 7 19:49:25 UTC 2024
Public bug reported:
## 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?
** Affects: germinate (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to germinate in Ubuntu.
https://bugs.launchpad.net/bugs/2056483
Title:
Provides and NBS
Status in germinate package in Ubuntu:
New
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?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/germinate/+bug/2056483/+subscriptions
More information about the foundations-bugs
mailing list