Bug 377341 (perl-dependency-loop)

Summary: Broken rt.jar symlink
Product: [Fedora] Fedora Reporter: Mark Wielaard <mark>
Component: perlAssignee: Robin Norwood <robin.norwood>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 8CC: aph, fitzsim, jsacco, kasal, liblit, mefoster, pnasrat, rc040203, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 5.8.8-32.fc8 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-12-03 06:46:01 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
install.log none

Description Mark Wielaard 2007-11-12 04:36:37 EST
Description of problem:

$ ls -lah /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar
lrwxrwxrwx 1 root root 17 2007-11-09 23:34
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar -> /libgcj-4.1.2.jar

/libgcj-4.1.2.jar doesn't exist and makes anything using rt.jar to locate core
classes (like gcjh) fail with an error like:

Exception in thread "main" java.io.IOException: can't find class file
java/lang/Thread.class in
java.net.URLClassLoader{urls=[file:/home/mark/src/git/frysk-obj/frysk-imports/tests/./,file:/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar],
parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./],
parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}

Version-Release number of selected component (if applicable):

$ rpm -q java-1.5.0-gcj
java-1.5.0-gcj-1.5.0.0-17.fc8

How reproducible:

Always

Steps to Reproduce:
$ ls -lah /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar
  
Actual results:

lrwxrwxrwx 1 root root 17 2007-11-09 23:34
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar -> /libgcj-4.1.2.jar


Expected results:

lrwxrwxrwx 1 root root 32 2007-11-12 10:30
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/rt.jar ->
/usr/share/java/libgcj-4.1.2.jar


Additional info:

Seems there is a similar issue for libjawt.so and libjvm.so
Comment 1 Thomas Fitzsimmons 2007-11-14 13:11:47 EST
Can you post /root/install.log?
Comment 2 Mark Wielaard 2007-11-14 13:39:23 EST
Created attachment 258531 [details]
install.log

There are some suspicious perl errors right after Installing java-1.5.0-gcj -
1.5.0.0-17.fc8.x86_64
Comment 3 Thomas Fitzsimmons 2007-11-14 15:29:28 EST
Yes, installation order is wrong:

perl
java-1.5.0-gcj
perl-libs

The order doesn't respect these packages' requirements.  Re-filing as an
Anaconda bug.
Comment 4 Mary Ellen Foster 2007-11-16 07:00:16 EST
So to work around this on a system where this happened as part of the install,
what's the best bet? "yum remove java-1.5.0-gcj" wants to remove a *lot*, so I
did the following instead and this fixed it:

rpm -ev --nodeps java-1.5.0-gcj
yum install java-1.5.0-gcj
Comment 5 Chris Lumens 2007-11-16 10:34:26 EST
Looks like perl needs to require perl-libs, or other similar problems with
package Requires.
Comment 6 Tom "spot" Callaway 2007-11-16 10:41:49 EST
perl does require perl-libs. Of course, perl-libs also requires perl. Isn't
multilib fun? :)

Not sure how the ordering is getting broken here, but for once, it isn't perl's
fault. Reassigning to rpm.
Comment 7 Panu Matilainen 2007-11-22 02:28:03 EST
You have a dependency loop there, those are do good for install-time ordering as
rpm has to break it somehow to install anything at all:

D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth,
breadth)
D: LOOP:
D: removing perl-5.8.8-30.fc8.x86_64 "Requires(auto): /usr/bin/perl" from tsort
relations.
D:     perl-5.8.8-30.fc8.x86_64                 Requires(auto): /usr/bin/perl
D: removing perl-5.8.8-30.fc8.i386 "Requires(auto): libperl.so" from tsort
relations.
D:     perl-5.8.8-30.fc8.i386                   Requires(auto): libperl.so
D: removing perl-libs-5.8.8-30.fc8.i386 "Requires: perl = 4:5.8.8-30.fc8" from
tsort relations.
D:     perl-libs-5.8.8-30.fc8.i386              Requires: perl = 4:5.8.8-30.fc8
D: ========== continuing tsort ...
D:     0    1    1   -1    1    0   +perl-libs-5.8.8-30.fc8.i386
D: LOOP:
D: removing perl-5.8.8-30.fc8.x86_64 "Requires(auto): libperl.so()(64bit)" from
tsort relations.
D:     perl-5.8.8-30.fc8.x86_64                 Requires(auto): libperl.so()(64bit)
D: removing perl-libs-5.8.8-30.fc8.x86_64 "Requires: perl = 4:5.8.8-30.fc8" from
tsort relations.
D:     perl-libs-5.8.8-30.fc8.x86_64            Requires: perl = 4:5.8.8-30.fc8
D: ========== continuing tsort ...

Loose the loop by removing "perl" dependency from perl-libs, or provide
additional hints that perl needs perl-libs to be installed first, eg 
"Requires(post): perl-libs" in perl ought to fix it.
Comment 8 Thomas Fitzsimmons 2007-11-26 13:12:07 EST
*** Bug 397881 has been marked as a duplicate of this bug. ***
Comment 9 Fedora Update System 2007-11-28 20:39:32 EST
perl-5.8.8-27.fc7 has been pushed to the Fedora 7 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update perl'
Comment 10 Fedora Update System 2007-11-28 20:41:35 EST
perl-5.8.8-32.fc8 has been pushed to the Fedora 8 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update perl'
Comment 11 Fedora Update System 2007-12-03 06:46:00 EST
perl-5.8.8-32.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 12 Fedora Update System 2007-12-03 06:49:06 EST
perl-5.8.8-27.fc7 has been pushed to the Fedora 7 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 13 Thomas Fitzsimmons 2008-01-04 10:31:21 EST
*** Bug 427120 has been marked as a duplicate of this bug. ***
Comment 14 Tom "spot" Callaway 2008-01-04 10:34:14 EST
Is the new report from a vanilla install of F-8, or does the updated perl not
resolve this problem?
Comment 15 Ben Liblit 2008-01-04 15:00:47 EST
I installed using a vanilla Fedora 8 ISO.  I'm not sure which "updated perl"
you're referring to, but my install was done using whatever was in the initial
Fedora 8 release: I was not using any respins.
Comment 16 Tom "spot" Callaway 2008-01-04 17:11:43 EST
Mmkay. Unfortunately, unless you're using one of the F-8 respins, there is no
avoiding this one. :/ At least F-9 won't have this issue.
Comment 17 Ben Liblit 2008-01-05 03:58:39 EST
Oh, hey, that's just fine.  I had no trouble correcting the link by hand.  I
wanted to be sure the bug would be fixed properly at some future date.  Sounds
like it will, so that's good enough for me.  Thanks!