openSUSE / zypper

World's most powerful command line package manager
http://en.opensuse.org/Portal:Zypper
Other
412 stars 113 forks source link

Digest verification failed for file 'qemu-seabios-1.16.2_3_gd478f380-2.1.noarch.rpm' #507

Closed casparvitch closed 1 year ago

casparvitch commented 1 year ago

Get following message on a zypper dup. Issue has persisted for at least a week I think.

Warning: Digest verification failed for file 'qemu-seabios-1.16.2_3_gd478f380-2.1.noarch.rpm'
[/var/tmp/AP_0xsYjI0H/noarch/qemu-seabios-1.16.2_3_gd478f380-2.1.noarch.rpm]

Another report @ reddit: https://www.reddit.com/r/openSUSE/comments/16spfr7/tumbleweed_update_failing/

Other info:

Information for package qemu-seabios:
-------------------------------------
Repository     : Main Repository (OSS)
Name           : qemu-seabios
Version        : 1.16.2_3_gd478f380-2.1
Arch           : noarch
Vendor         : openSUSE
Installed Size : 419.9 KiB
Installed      : Yes (automatically)
Status         : out-of-date (version 1.16.2_3_gd478f380-1.1 installed)
Source package : qemu-8.1.0-2.1.src
Upstream URL   : https://www.qemu.org/
Summary        : x86 Legacy BIOS for QEMU
Description    : 
    SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS
    is the default and legacy BIOS for QEMU.
#  | Alias                               | Name                          | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                                          | Service
---+-------------------------------------+-------------------------------+---------+-----------+---------+----------+--------+----------------------------------------------------------------------------------------------+--------
 1 | M17N_fonts                          | Fonts (openSUSE_Tumbleweed)   | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/M17N:/fonts/openSUSE_Tumbleweed/            | 
 2 | MEGAsync                            | MEGAsync                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mega.nz/linux/repo/openSUSE_Tumbleweed/                                              | 
 3 | Publishing                          | Publishing Tools and Librar-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/Publishing/openSUSE_Tumbleweed/             | 
 4 | cuda-opensuse15-x86_64              | cuda-opensuse15-x86_64        | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://developer.download.nvidia.com/compute/cuda/repos/opensuse15/x86_64                   | 
 5 | devel_languages_go                  | The Go Programming Language-> | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/      | 
 6 | download.opensuse.org-non-oss       | Main Repository (NON-OSS)     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/tumbleweed/repo/non-oss/                                 | 
 7 | download.opensuse.org-oss           | Main Repository (OSS)         | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/tumbleweed/repo/oss/                                     | 
 8 | download.opensuse.org-tumbleweed    | Main Update Repository        | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/update/tumbleweed/                                       | 
 9 | home_yuezk                          | home:yuezk (openSUSE_Tumble-> | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/home:/yuezk/openSUSE_Tumbleweed/            | 
10 | http-download.opensuse.org-808c7c91 | openSUSE:Factory              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/tumbleweed/repo/oss/                                     | 
11 | network_utilities                   | Network Utilities (openSUSE-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/network:/utilities/openSUSE_Factory/        | 
12 | packman                             | Packman                       | Yes     | (r ) Yes  | Yes     |   90     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/                         | 
13 | science                             | Software for Scientists and-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/science/openSUSE_Tumbleweed/                | 
14 | shells                              | Shell Implementations (open-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/shells/openSUSE_Tumbleweed/                 | 
15 | sublime-text                        | Sublime Text - x86_64 - Sta-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.sublimetext.com/rpm/stable/x86_64                                           | 
16 | system_packagemanager               | Packagemanagers for/from di-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/system:/packagemanager/openSUSE_Tumbleweed/ | 
17 | utilities                           | all the small tools for the-> | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://mirrorcache-au.opensuse.org/repositories/utilities/openSUSE_Factory/                 | 

What I have tried:

luc14n0 commented 1 year ago

I'm fairly sure this has nothing to do with Zipper, but with some funky mirror. And AFAICT mirrorsorcerer doesn't change mirrors (despite the name), it does change the baseurl of repo files to point to regional MirrorCache instances (like mirrorcache-au.opensuse.org) instead of download.opensuse.org. That change made sense in the past when Zypper didn't have the GeoIP feature yet, nowadays, not so much.

First thing I'd try would to get rid of that openSUSE:Factory repo, it's a duplicate of the Tumbleweed OSS repo and it's known to confuse Zypper in strange ways.

And if the issue persists, I'd check which mirror the request is being sent with:

curl -IL https://mirrorcache-au.opensuse.org/tumbleweed/repo/oss/noarch/qemu-seabios-1.16.2_3_gd478f380-2.2.noarch.rpm

You can download the rpm manually with curl -LO https://... and check the digest with sha512sum qemu-seabios-.... If it's really a funky mirror you're hitting, you can download it from the source of the sources by replacing mirrorcache-au.opensuse.org, in the curl command, with downloadcontent.opensuse.org.

After verifying that the digest is right you can put the downloaded rpm inside /var/cache/zypp/packages/$repo_oss_name/noarch/ and proceed with zypper dup.

casparvitch commented 1 year ago

Thanks for that, very helpful.

I have tried again, and I am having an issue with a different package (dup didn't get to qemu yet).

Package: https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libplacebo264-5.264.1-1.3.x86_64.rpm

Mirror (from curl as you suggested): https://sy.mirrors.kernel.org/opensuse/tumbleweed/repo/oss/x86_64/libplacebo264-5.264.1-1.3.x86_64.rpm

When I download and check the digest I get different sums each time I try, and they don't match what zypper expects (how do I know what digest I should expect??).

casparvitch commented 1 year ago

Also, if there is somewhere else I should raise this let me know.

mlandres commented 1 year ago

@casparvitch I asked the mirrorcache team to have a look at it.

The expected package checksums are taken from the repositories metadata (/var/cache/zypp/{REPO_ALIAS}/repomd/*-primary.xml). You can also extract them from the repos .solv-cache:

dumpsolv /var/cache/zypp/solv/{REPO_ALIAS}/solv | grep '^solvable:\(name\|evr\|arch\|checksum\)' | grep -B 3 {PACKAGENAME}
andrii-suse commented 1 year ago

I've disabled the mirror, download.o.o will not redirect to it until it is manually enabled back

andrii-suse commented 1 year ago
> curl -sL https://sy.mirrors.kernel.org/opensuse/tumbleweed/repo/oss/noarch/qemu-seabios-1.16.2_3_gd478f380-2.1.noarch.rpm | sha512sum 
a7251f17f3b1b5c034dd4fef7b9f03e2490332f2675cfb0fa7d58d3828356e4f13e758a71966835c681c08f13207a0e583382632180a4f78a7854763dba5044c  -
> curl -sL https://download.opensuse.org/tumbleweed/repo/oss/noarch/qemu-seabios-1.16.2_3_gd478f380-2.1.noarch.rpm | sha512sum 
93823a842999980d16444a608508e3b3b2800f731ed0a9c7906db73de0b8ee3c02562d804d2619fdfebe6652b1faefde47b9ec8bae47b7360a2e1e29b6c9386e  -
> curl -s https://sy.mirrors.kernel.org/opensuse/tumbleweed/repo/oss/x86_64/libplacebo264-5.264.1-1.3.x86_64.rpm | sha512sum 
dc7054984c9f2754f00dd8cc58e17b180f928b2b11c620bf5601a7ba2f8cce852671f99090446903b43ab00a0fded1039b45a7dbc63fef0a49d6325062a03d8e  -
> curl -sL https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libplacebo264-5.264.1-1.3.x86_64.rpm | sha512sum 
f2e6aa5c0b41f54ffa2dc7761163812d89fd55bbf5d5c503e4e3b2bb0b0989580dfa3baee6eca2682506645f73a816def1c88024a88127d2bd7616a0feac431d  -
casparvitch commented 1 year ago

All working on my end now, thanks everyone 🙏