Bug 1122004 - RPM fails to install package with "cpio: Archive file not in header"
Summary: RPM fails to install package with "cpio: Archive file not in header"
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: 21
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Packaging Maintenance Team
QA Contact: Fedora Extras Quality Assurance
: 1126946 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 2014-07-22 10:48 UTC by Aaron Sowry
Modified: 2014-08-18 11:41 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2014-08-18 11:41:04 UTC

Attachments (Terms of Use)

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):

How reproducible:

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 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?


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 (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

Note You need to log in before you can comment on or make changes to this bug.