[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