Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian....@packages.debian.org
Usertags: pu

[ Reason ]
Both Fedora Rawhide and SUSE Tumbleweed started to compress their
respective RepoData with zstd. The libsolv version in bullseye is not
build with zstd support, so using zypper/dnf in bullseye to build a new
Fedora/SUSE chroot started to fail this week.

[ Impact ]
$ 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
<...>
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.

[ Tests ]
libsolv in bullseye already supports zstd, but it is not enabled. The
fix is simply to build-depend on libzstd and enable the relevant cmake
flag, and then it works:

$ zypper --reposd-dir=/tmp/repos.d --root=/tmp/img --gpg-auto-import-keys 
install distribution-release filesystem
Building repository 'mkosi.repo' cache 
.........................................................................[done]
Loading repository data...
Reading installed packages...
'distribution-release' not found in package names. Trying capabilities.
Resolving package dependencies...

The following 20 NEW packages are going to be installed:
  bash bash-sh compat-usrmerge-tools filesystem glibc glibc-extra libgcc_s1 
libncurses6 libpcre2-8-0 libreadline8
  libselinux1 libstdc++6 ncurses-utils openSUSE-release 
openSUSE-release-appliance-custom
  patterns-glibc-hwcaps-x86_64_v3 system-user-root terminfo-base 
terminfo-screen timezone

The following 4 recommended packages were automatically selected:
  glibc-extra ncurses-utils terminfo-screen timezone

The following 9 packages are suggested, but will not be installed:
  branding-openSUSE distribution-logos-openSUSE-Tumbleweed java-11-openjdk 
mariadb mariadb-client openssl-1_1
  openSUSE-build-key openSUSE-repos-Tumbleweed procps

20 new packages to install.
Overall download size: 7.3 MiB. Already cached: 0 B. After the operation, 
additional 16.3 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
<...>
$ cat img/usr/lib/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20231114"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20231114"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20231114"
BUG_REPORT_URL="https://bugzilla.opensuse.org";
SUPPORT_URL="https://bugs.opensuse.org";
HOME_URL="https://www.opensuse.org";
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed";
LOGO="distributor-logo-Tumbleweed"

[ Risks ]
Minimal, support for zstd is old and the change is simply a new build
dependency and build flag. Worst case scenario is that zstd doesn't
work, and the situation is not any different from status quo.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Other info ]
I have already updated this change. It is fixed in the latest unstable
upload as well. I am also proposing the same fix for bookworm and
Ubuntu stable releases:

https://bugs.launchpad.net/ubuntu/+source/libsolv/+bug/2043625

-- 
Kind regards,
Luca Boccassi
diff -Nru libsolv-0.7.17/debian/changelog libsolv-0.7.17/debian/changelog
--- libsolv-0.7.17/debian/changelog	2021-02-01 20:04:46.000000000 +0000
+++ libsolv-0.7.17/debian/changelog	2023-11-16 23:25:47.000000000 +0000
@@ -1,3 +1,10 @@
+libsolv (0.7.17-1+deb11u1) bullseye; urgency=medium
+
+  [ Sjoerd Simons ]
+  * Enable libzstd compression support
+
+ -- Luca Boccassi <bl...@debian.org>  Thu, 16 Nov 2023 23:25:47 +0000
+
 libsolv (0.7.17-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru libsolv-0.7.17/debian/control libsolv-0.7.17/debian/control
--- libsolv-0.7.17/debian/control	2020-12-19 12:58:21.000000000 +0000
+++ libsolv-0.7.17/debian/control	2023-11-16 23:25:33.000000000 +0000
@@ -13,6 +13,7 @@
  librpm-dev (>= 4),
  liblzma-dev,
  libbz2-dev,
+ libzstd-dev,
  python3-dev,
  libpython3-dev,
  swig,
diff -Nru libsolv-0.7.17/debian/rules libsolv-0.7.17/debian/rules
--- libsolv-0.7.17/debian/rules	2020-12-19 12:58:21.000000000 +0000
+++ libsolv-0.7.17/debian/rules	2023-11-16 23:25:33.000000000 +0000
@@ -47,6 +47,7 @@
                          -DCMAKE_VERBOSE_MAKEFILE=ON \
                          -DENABLE_LZMA_COMPRESSION=1 \
                          -DENABLE_BZIP2_COMPRESSION=1 \
+                         -DENABLE_ZSTD_COMPRESSION=1 \
                          -DENABLE_PERL=1 \
                          -DENABLE_PYTHON=0 \
                          -DENABLE_PYTHON3=1 \

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to