Bug 1122004

Summary: RPM fails to install package with "cpio: Archive file not in header"
Product: [Fedora] Fedora Reporter: Aaron Sowry <aaron>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 21CC: aaron, ffesti, jfrieben, jzeleny, novyjindrich, packaging-team-maint, pknirsch, pmatilai
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-18 11:41:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Aaron Sowry 2014-07-22 10:48:57 UTC
Description of problem:
Installation of a third-party package (Cendio's ThinLinc client) fails on F21. Works fine on previous versions of Fedora.

Version-Release number of selected component (if applicable):
rpm-4.11.90-0.git12844.5.fc21.x86_64
cpio-2.11-29.fc21.x86_64

How reproducible:
Always.

Steps to Reproduce:
1. Download the latest ThinLinc client RPM package from [1]
2. sudo rpm -ivh thinlinc-client-4.2.0-4356.x86_64.rpm

Actual results:
Installation fails with the following message:

error: unpacking of archive failed: cpio: Archive file not in header
error: thinlinc-client-4.2.0-4356.x86_64: install failed

Expected results:
Installation succeeds as per previous versions of Fedora.

Additional info:
[1] http://www.cendio.com/downloads/clients/thinlinc-client-4.2.0-4356.x86_64.rpm

Comment 1 Florian Festi 2014-07-22 11:46:30 UTC
OK, looks like the new archive handling code does not work with rpm v3 packages. The reason is that they ship a cpio archive without leading "/" while rpm v4 uses leading "./". As a result the files in the archive cannot be mapped to the header entries. Working on a fix.

Comment 2 Florian Festi 2014-07-22 13:51:38 UTC
Hmm, weird. The packages actually states it was build with rpm 4.9.1.3. The files in the header do have a leading "/" while the entries in the cpio archive don't. Do you have the spec file of the package at hand? And any information on how the package was actually build?

Florian

Comment 3 Aaron Sowry 2014-07-23 13:49:24 UTC
Looking at the Makefile, the package is built using the following command:

rpmbuild -ta thinlinc-client.tar.gz --define="_topdir $(TOPDIR)/buildarea" --target=x86_64 --nodirtokens

Running "rpmbuild --version" indeed gives 4.9.1.3 (RHEL 6.5).

I dont have immediate access to the spec file, but if you still need it given the above info then just re-set the needinfo flag and I'll try to get it for you (or at least create a small test case).

Comment 4 Panu Matilainen 2014-08-12 08:13:49 UTC
Its built with %{_noPayloadPrefix} macro set to non-zero someplace, probably spec. That build-time compatibility option has been dropped in rpm 4.12 but I suppose we need to be able to install such packages still.

Comment 5 Panu Matilainen 2014-08-12 08:16:13 UTC
*** Bug 1126946 has been marked as a duplicate of this bug. ***

Comment 6 Panu Matilainen 2014-08-18 11:41:04 UTC
Fixed in rpm >= 4.12.0-0.beta1.1.fc21.1