[Bug 2043625] Re: libsolv: lack of zstd support makes it impossible to create SUSE Tumbleweed/Fedora Rawhide chroots with zypper/dnf

Simon Quigley 2043625 at bugs.launchpad.net
Thu Nov 16 16:36:47 UTC 2023


Hi Luca, I hope this finds you well.

I *really* appreciate you submitting this as a Stable Release Update for
Ubuntu. I see you're a Debian Developer and have already submitted the
appropriate paperwork for a Debian Stable update; thank you very much
for your work on that as well.

As a fellow Debian Developer, I have a baseline level of trust in your
uploads. That being said, the changes are minimal and clean, and you
appropriately attached the bug report to the changelog entry. Simply
speaking regarding packaging, you hit the nail on the head (which is
what I would expect, of course ;) ).

I'm sure you're aware: the Ubuntu Stable Release Updates Team reserves
the right to accept or reject this upload, based on the contents of the
upload and your bug report. Fortunately, unlike Debian, you're able to
edit your report to include additional information.

I would highly suggest expanding on any regression potential. Could a
regression in the underlying libzstd library negatively affect existing
users? How would those regressions present themselves? Try to be overly
verbose. (I attended a talk at the Ubuntu Summit regarding SRUs, and one
of the major points was, "we usually reject uploads with a Regression
Potential of "very minimal." Not my decision, just be aware. :) )

Thanks again for your stellar work!

** Changed in: libsolv (Ubuntu Jammy)
     Assignee: (unassigned) => Luca Boccassi (bluca)

** Changed in: libsolv (Ubuntu Lunar)
     Assignee: (unassigned) => Luca Boccassi (bluca)

** Changed in: libsolv (Ubuntu Mantic)
     Assignee: (unassigned) => Luca Boccassi (bluca)

** Changed in: libsolv (Ubuntu Noble)
     Assignee: (unassigned) => Luca Boccassi (bluca)

** Changed in: libsolv (Ubuntu Jammy)
   Importance: Undecided => High

** Changed in: libsolv (Ubuntu Lunar)
   Importance: Undecided => High

** Changed in: libsolv (Ubuntu Mantic)
   Importance: Undecided => High

** Changed in: libsolv (Ubuntu Noble)
   Importance: Undecided => High

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2043625

Title:
  libsolv: lack of zstd support makes it impossible to create SUSE
  Tumbleweed/Fedora Rawhide chroots with zypper/dnf

Status in libsolv package in Ubuntu:
  Fix Committed
Status in libsolv source package in Jammy:
  In Progress
Status in libsolv source package in Lunar:
  In Progress
Status in libsolv source package in Mantic:
  In Progress
Status in libsolv source package in Noble:
  Fix Committed

Bug description:
  Both Fedora Rawhide and SUSE Tumbleweed started to compress their
  respective RepoData with zstd. The libsolv version in all Ubuntu
  releases is not build with zstd support, so using zypper/dnf from any
  Ubuntu version to build a new Fedora/SUSE chroot started to fail this
  week.

  Noble will be fixed in the next sync of libsolv from Debian unstable,
  where I enabled libzstd support in 0.7.26-2. I would like SRUs all the
  way back to jammy to fix the CI jobs. The fix is very low risk as it
  enables an already available and optional feature, that is exercised
  only when referring to zstd-compressed repositories, which currently
  cannot work at all without this flag enabled.

  There is an older distro-wide LP tracking libzstd enablement across
  all packages:
  https://bugs.launchpad.net/ubuntu/+source/libsolv/+bug/1923845

  Support for zstd was added upstream in version 0.6.35:
  https://github.com/openSUSE/libsolv/commit/f51d048e6774c180a9fef21b87d7303accae3809

  Fix proposal for Debian stable: https://bugs.debian.org/cgi-
  bin/bugreport.cgi?bug=1056006

  [Impact]

  This affects our CI jobs in the systemd projects on Github Actions,
  which are running on Jammy and using dnf and zypper (with libsolv) to
  build images. e.g.:

  https://pipelinesghubeus21.actions.githubusercontent.com/fW9YnoEKBASdi1Tl6Qk8OxwlrJgIZvKOJ6c0FMLt24imZ5L13v/_apis/pipelines/1/runs/254815/signedlogcontent/8?urlExpires=2023-11-15T23%3A13%3A32.0430115Z&urlSigningMethod=HMACV1&urlSignature=vLbcJy6TM0PlI%2FQQsuRjhqwKLKo00%2B%2FvuURQuAWNpac%3D
  https://pipelinesghubeus21.actions.githubusercontent.com/fW9YnoEKBASdi1Tl6Qk8OxwlrJgIZvKOJ6c0FMLt24imZ5L13v/_apis/pipelines/1/runs/254815/signedlogcontent/4?urlExpires=2023-11-15T23%3A13%3A49.1567762Z&urlSigningMethod=HMACV1&urlSignature=deiHR5B%2FxW9RXe%2FtC5YYYLDcWnCMa1gDGkYciaU3amo%3D

  [Major Changes]

  The libsolv versions in Ubuntu already support zstd, but it is not
  enabled at build time. It is trivially enabled with a build-dependency
  on libzstd and by passing a build configuration flag to cmake.

  [Test Plan]

  Install zypper, create a minimal config file and try to bootstrap a
  minimal SUSE Tumbleweed chroot with these 3 simple commands:

  mkdir -p repos.d img
  cat <<EOF>repos.d/test.repo
  [test.repo]
  name=test.repo
  baseurl=https://download.opensuse.org/tumbleweed/repo/oss/
  gpgcheck=1
  enabled=1
  autorefresh=0
  keeppackages=1
  EOF
  zypper --reposd-dir=$PWD/repos.d --root=$PWD/img --gpg-auto-import-keys install distribution-release filesystem

  If it works, then the fix worked. Without the fix, the following error
  can be seen:

  Building repository 'test.repo' cache .........................................................................[error]
  Error building the cache:
  [test.repo|https://download.opensuse.org/tumbleweed/repo/oss/] Failed to cache repo (1).
  History:
   - 'repo2solv' '-o' '/tmp/img/var/cache/zypp/solv/test.repo/solv' '-X' '/tmp/img/var/cache/zypp/raw/test.repo'
     /tmp/img/var/cache/zypp/raw/test.repo/repodata/d6fbf1152bab99fc7ceacf974422a9799694274b64c36015b10288e6cabadd81e4649b19f52570efc5f3ab5b28817c9561fa8eeca117a05f3caea6c33e48cb69-primary.xml.zst: No such file or directory
     Command exited with status 1.

  Warning: Skipping repository 'test.repo' because of the above error.
  Some of the repositories have not been refreshed because of an error.
  Loading repository data...
  Reading installed packages...
  'distribution-release' not found in package names. Trying capabilities.
  No provider of 'distribution-release' found.
  'filesystem' not found in package names. Trying capabilities.
  No provider of 'filesystem' found.
  Resolving package dependencies...
  Nothing to do.

  [Regression Potential]
  Very minimal. The feature had been supported for many versions prior to the current ones, and when enabled it only affects code paths that deal with zstd compressed artifacts, which currently cannot work at all due to the lack of support. The worst case scenario is that support for zstd does not work in some ways, which is not any worse than status quo.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libsolv/+bug/2043625/+subscriptions





More information about the Ubuntu-sponsors mailing list