Opened 4 years ago

Closed 3 years ago

#172 closed defect (fixed)

hard links detected (was: yum install perl fails)

Reported by: haraldkamm Owned by: ydario
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 changed from trivial to minor

comment:2 Changed 4 years ago by ydario

  • Resolution set to duplicate
  • Status changed from new to closed

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 ydario (previous) (diff)

comment:3 Changed 4 years ago by ydario

  • Component changed from yum to rpm
  • Priority changed from minor to blocker
  • Resolution duplicate deleted
  • Severity changed from medium to highest
  • Status changed from closed to reopened

comment:4 Changed 4 years ago by diver

which rpm version do you use? yum list rpm*

comment:5 Changed 4 years ago by ydario

  • Owner set to ydario
  • Status changed from reopened to assigned
  • Summary changed from yum install perl fails to hard 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 ydario

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 ydario

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

comment:8 Changed 4 years ago by ydario

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 3 years ago by ydario

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.