Bugzilla – Bug 1221270
rpm package doesn't provide rpm2archive command
Last modified: 2024-03-14 12:30:26 UTC
It looks like rpmlint fails to extract a source rpm which is bigger than 4GB? [ 274s] RPMLINT report: [ 274s] =============== [ 312s] (none): E: fatal error while reading //home/abuild/rpmbuild/SRPMS/piper-voices-1.0.0-0.src.rpm: [Errno 2] No such file or directory: '/tmp/rpmlint.piper-voices-1.0.0-0.src. rpm.83mfaz86/piper-voices.spec' [ 312s] Traceback (most recent call last): [ 312s] File "/opt/testing/bin/rpmlint.real", line 8, in <module> [ 312s] sys.exit(lint()) [ 312s] ^^^^^^ [ 312s] File "./rpmlint/cli.py", line 184, in lint [ 312s] File "./rpmlint/lint.py", line 123, in run [ 312s] File "./rpmlint/lint.py", line 91, in _run [ 312s] File "./rpmlint/lint.py", line 264, in validate_files [ 312s] File "./rpmlint/lint.py", line 290, in validate_file [ 312s] File "./rpmlint/lint.py", line 283, in validate_file [ 312s] File "./rpmlint/lint.py", line 299, in run_checks [ 312s] File "./rpmlint/checks/AbstractCheck.py", line 16, in check [ 312s] File "./rpmlint/checks/SpecCheck.py", line 179, in check_source [ 312s] File "./rpmlint/checks/SpecCheck.py", line 187, in check_spec [ 312s] File "./rpmlint/checks/SpecCheck.py", line 229, in _check_non_utf8_spec_file [ 312s] File "./rpmlint/pkg.py", line 105, in is_utf8 [ 312s] FileNotFoundError: [Errno 2] No such file or directory: '/tmp/rpmlint.piper-voices-1.0.0-0.src.rpm.83mfaz86/piper-voices.spec' Reproducer (needs git-lfs): osc co home:gladiac piper-voices cd 'home:gladiac/piper-voices/' osc service manualrun osc build I wonder if it has issues with source RPMs which are bigger than 4GB: # unrpm /srv/oscbuild/build-root-openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/SRPMS/piper-voices-1.0.0-0.src.rpm /srv/oscbuild/build-root-openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/SRPMS/piper-voices-1.0.0-0.src.rpm: files over 4GB not supported by cpio, use rpm2archive instead cpio: premature end of archive
Maybe it is something else. I've tried with: Index: piper-voices.spec =================================================================== --- piper-voices.spec (revision 1) +++ piper-voices.spec (working copy) @@ -24,7 +24,9 @@ URL: https://huggingface.co/rhasspy/piper-voices/ # Created with: osc service manualrun # Note that you need git-lfs installed to create the tarball -Source0: piper-voices-1.0.0.tar.zstd +Source0: piper-voices-1.0.0.tar.zst +Source1: README.suse.md +NoSource: 0 BuildArch: noarch BuildRequires: rsync Index: README.suse.md =================================================================== --- README.suse.md (revision 0) +++ README.suse.md (revision 0) @@ -0,0 +1,4 @@ +# Piper TTS Voices + +The source package doesn't include the piper-voices-x.x.x.tar.zst tarball as it +is to big. and it still fails, the nosrc.rpm is only 11kb.
Hmm # rpm -qplv piper-voices-1.0.0-0.nosrc.rpm -rw-r--r-- 1 root root 111 Mar 12 10:19 README.suse.md -rw-r--r-- 1 root root 6503433009 Mar 12 09:33 piper-voices-1.0.0.tar.zst -rw-r--r-- 1 root root 2668 Mar 12 13:56 piper-voices.spec -rw-r--r-- 1 399 399 11K Mar 12 13:56 piper-voices-1.0.0-0.nosrc.rpm
https://github.com/rpm-software-management/rpmlint/issues/1212
Created attachment 873445 [details] piper-voices-1.0.0-0.nosrc.rpm
This will work only with rpm2archive. It's currently supported by rpmlint [1] but the rpm2archive command should be available, and right now it's not provided by the rpm package in openSUSE [2]. [1] https://github.com/rpm-software-management/rpmlint/blob/main/rpmlint/pkg.py#L600-L606 [2] https://build.opensuse.org/package/view_file/Base:System/rpm/rpm.spec?expand=1
rpm2archive is a rpm build option that we don't enable.
and not enabling it breaks rpmlint's handling of large source rpms. so it would be really helpful _if_ you could enable it.
alternatively you can propose another option for rpmlint to handle those files. a sample nosrc.rpm is attached to the bug.
the bsdtar workaround, that I used for rpm2docserv would not work here. ``` bsdtar xf ../piper-voices-1.0.0-0.nosrc.rpm bsdtar: Error opening archive: Unrecognized archive format ```