Opened 4 years ago

Closed 4 years ago

#172 closed defect (fixed)

hard links detected (was: yum install perl fails)

Reported by: haraldkamm Owned by: Yuri Dario
Priority: blocker Milestone:
Component: rpm Version:
Severity: highest Keywords:
Cc:

Description

"yum install perl" fails. Any hint would be very appreciated.

netlabs-rel/primary_ | 701 kB 00:03 =-] 118 kB/s | 681 kB 00:00 ETA
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package perl.i686 0:5.16.1-1.oc00 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

perl i686 5.16.1-1.oc00 netlabs-rel 8.9 M

Transaction Summary
================================================================================

Install 1 Package

Total download size: 8.9 M
Installed size: 8.9 M
Is this ok [y/N]:

Downloading Packages:
perl-5.16.1-1.oc00.i | 8.9 MB 00:58 =-] 192 kB/s | 8.8 MB 00:00 ETA
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction

Installing : perl-5.16.1-1.oc00.i686 1/1

Error unpacking rpm package perl-5.16.1-1.oc00.i686
error: unpacking of archive failed: cpio: Bad magic

Failed:

perl.i686 0:5.16.1-1.oc00

Complete!

Change History (9)

comment:1 Changed 4 years ago by haraldkamm

Priority: trivialminor

comment:2 Changed 4 years ago by Yuri Dario

Resolution: duplicate
Status: newclosed

The rpm package is not corrupted, verified using rpm2cpio/cpio on os2 and linux. Even linux rpm can install this package.

Debugging shows that cpio magic header is bad because of wrong read position in the file. The rpm OS/2 port should be ignoring some field length somewhere.

Last edited 4 years ago by Yuri Dario (previous) (diff)

comment:3 Changed 4 years ago by Yuri Dario

Component: yumrpm
Priority: minorblocker
Resolution: duplicate
Severity: mediumhighest
Status: closedreopened

comment:4 Changed 4 years ago by Silvan Scherrer

which rpm version do you use? yum list rpm*

comment:5 Changed 4 years ago by Yuri Dario

Owner: set to Yuri Dario
Status: reopenedassigned
Summary: yum install perl failshard links detected (was: yum install perl fails)

The reason is related to existence of hard links in the rpm package; it can be checked with

rpm -q --qf "[%{FILENAMES} %{FILENLINKS}\n]" -p perl-5.16.1-1.oc00.pentium4.rpm

which shows

/@unixroot/usr/bin/a2p.dbg 1
/@unixroot/usr/bin/a2p.exe 1
/@unixroot/usr/bin/c2ph 2
/@unixroot/usr/bin/find2perl 1
...
...

c2ph is not hard linked, even because OS/2 does not know about hard links. So here rpm 4.8 logic detected a hard link; this happened because inode and device number are used to detect hard links in rpm build logic and inode are not real numbers in klibc.

rpm should not write hardlinks in the package.

comment:6 Changed 4 years ago by Yuri Dario

Even if rpm 4.13 is building a perl package without hard links, thanks to ffesti on #rpm.org the hard link table is now disabled

rpm: disable hard link table building, ticket#172.
Committed revision r692.

comment:7 Changed 4 years ago by Yuri Dario

above rpm -q --qf macro must be run across all packages in repository to find broken packages.

comment:8 Changed 4 years ago by Yuri Dario

package scanning showed that perl is the only broken package. going to rebuild it.

spec: perl, package rebuild due to broken hard links, ticket#172.
Committed revision r694.

comment:9 Changed 4 years ago by Yuri Dario

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.