Bug 202007

Summary: gcj: libgcj.spec: No such file or directory
Product: [Fedora] Fedora Reporter: Karsten Hopp <karsten>
Component: java-1.4.2-gcj-compatAssignee: Thomas Fitzsimmons <fitzsim>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dcantrell
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-22 20:33:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 236526    

Description Karsten Hopp 2006-08-10 10:46:53 UTC
Description of problem:
Found this in install.log of a fresh install:
Installing java-1.4.2-gcj-compat-devel - 1.4.2.0-40jpp_100rh.x86_64
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory
...
Installing java-1.4.2-gcj-compat-devel - 1.4.2.0-40jpp_100rh.i386
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory
gcj: libgcj.spec: No such file or directory

according to install.log libgcj and libgcj-devel get installed much later

Comment 1 Thomas Fitzsimmons 2006-08-14 17:52:40 UTC
I have these lines in the devel section of the 100rh spec file:

Requires(post): gcc%{gccsuffix}-java >= %{gccver}
Requires(postun): gcc%{gccsuffix}-java >= %{gccver}

And the gcc-java sub-package of the gcc RPM has these lines:

Requires: libgcj = %{version}-%{release}
Requires: libgcj-devel = %{version}-%{release}, zlib-devel

I'm not sure what could be causing this.

Comment 2 Jesse Keating 2006-08-14 18:08:34 UTC
Possible thought here.

java-1.4.2-gcj-compat package correctly has Requires(foo) on gcc<foo>-java.  So
the rpm installation ordering puts the gcc<foo>-java package before
java-1.4.2-gcj-compat.  However gcc-java just Requires libgcj, so libgcj could
be added to the END of the transaction order.  Thus you would have (much
simplified):

0: gcc<foo>-java
1: java-1.4.2-gcj-compat
2: libgcj

If java-1.4.2-gcj-compat really needs something from libgcj in it's pre or post
or whatever, you should list it there, even if it would later get pulled in via
Requires from something else you list.

Does this make sense?

Comment 3 Thomas Fitzsimmons 2006-08-14 18:19:50 UTC
The explanation makes sense, but rpm's behaviour does not.  gcc-java requires
libgcj-devel to function, as indicated by the gcc-java's Requires lines. 
java-1.4.2-gcj-compat-devel's post/postun sections do not require libgcj.spec
(provided by libgcj-devel) directly, but they do require gcj (provided by
gcc-java).  I would not expect to have to specify all indirect post/postun
dependencies explicitly (since that would mean specifying the transitive closure
of all packages as Requires(post) and Requires(postun) lines!).


Comment 4 Thomas Fitzsimmons 2006-08-14 19:20:22 UTC
This should be fixed in java-1.4.2-gcj-compat-1.4.2.0-40jpp_101rh which I just
built into Rawhide.  Please confirm.


Comment 5 Thomas Fitzsimmons 2006-08-22 20:33:56 UTC
I'm assuming that this is fixed in Rawhide.  Please re-open this report if the
bug appears again.