不知道从什么时候开始,欧拉仓库的许多软件包格式已经不对了

rpm包都有个头的,里边会记录压缩格式、cpio大小等,我今天发现很多包读取到的大小都是0,这导致rpm2cpio命令返回失败码,有很多包有这个问题。
比如
https://mirrors.163.com/openeuler/openEuler-22.03-LTS-SP2/update/source/Packages/infinispan-8.2.4-13.oe2203sp2.src.rpm

[lichaoran@LAPTOP-6KLLVI0M test]$ rpm2cpio …/infinispan-8.2.4-13.oe2203sp2.src.rpm |cpio -idum
17494 blocks
[lichaoran@LAPTOP-6KLLVI0M test]$ ls
CVE-2016-0750.patch CVE-2019-10174.patch infinispan-8.2.4.Final.tar.gz
CVE-2017-15089-1.patch CVE-2019-10174-pre.patch infinispan.spec
CVE-2017-15089-2.patch implement-abstract-functions-extended-from-class-Directory.patch lucene-6.patch

我这里执行了后,是正常,可以确认一下下载的包是否完整

能解压出来不代表没问题。
我要的是命令返回值。你知道在脚本中调用命令,返回值有多重要吗?
rpm2cpio …/infinispan-8.2.4-13.oe2203sp2.src.rpm >cpio
它返回 1
很多集成化脚本执行系统命令,返回错误会报异常。
我首先遇到的是osc(obs的命令行工具)中有使用相关代码,导致流程中断。


这里再尝试了一次,并没有报错,可以把有问题的包发出来看看吗

如果用其他发行版(比如Debian 12)的rpm2cpio命令来解析楼主贴出的rpm包,确实exit 1。

问题应该出在rpm2cpio.c里面的:

    rc = (ufdCopy(gzdi, fdo) == payload_size) ? EXIT_SUCCESS : EXIT_FAILURE;

欧拉发行版(我这里用的是24.03)会返回EXIT_SUCCESS,debian 12会返回EXIT_FAILURE。

可能先用欧拉发行版24.03可以解决问题?