[fedora-java] dependency issues with java-1.4.2-gcj-compat

David Farning dfarning at sbcglobal.net
Thu Sep 15 14:51:49 UTC 2005


On Thu, 2005-09-15 at 15:12 +0100, Gary Benson wrote:
> David Farning wrote:
> > On Thu, 2005-09-15 at 13:42 +0100, Gary Benson wrote:
> > > David Farning wrote:
> > > > When running yum install eclips* I got all sorts of
> > > > /usr/bin/rebuild-gcj-db: No such file or directory
> > > > errors until I manually installed java-1.4.2*
> > > 
> > > It sounds like rpm is _still_ not ordering dependencies correctly.
> > > There should be a bug open against rpm for this, but if not please
> > > file one.
> > 
> > I did a bit of searching on this it would seem to be the 
> > %if %{gcj_support}
> > ....
> > Requires(post):   java-gcj-compat >= 1.0.31
> > Requires(postun): java-gcj-compat >= 1.0.31
> > ....
> > 
> > are causing problem because they don't...wait for it...work!
> 
> That's the one.
> 
> > Would there be a problem with 
> >    
> > %if %{gcj_support}
> > ....
> > Requires: java-gcj-compat >= 1.0.31
> > ....
> > 
> > ie. would it hurt it -compat were present all the time not just
> > during post and unpost?
> 
> The Short answer is no, since Requires(*) implies Requires.
> 
> The long answer is that Requires on its own is not in force during rpm
> transactions.  Augmented Requires(*) dependencies specify that it must
> be present at certain points within the transaction _in_addition_to_
> inbetween transactions.
> 
> Cheers,
> Gary
> 
> 
I have not had any problems with straight Requires.  Yum seems to always
handle straight requires correctly properly by, 
first it installs any required packages
then it installs the package it's self. 

if in [core] / devel / gnu-crypto / gnu-crypto.spec  

> BuildRequires:  ant, java-devel >= 0:1.4
> %if !%{gcj_support}
> Requires:       java >= 0:1.4
> Requires(post): jpackage-utils >= 0:1.6.3-1jpp_1rh
> Requires(postun): jpackage-utils >= 0:1.6.3-1jpp_1rh
> %else
> Requires:       jce
> Requires:       jpackage-utils >= 0:1.6.2-1jpp_5rh
> %endif
> Requires:       java-sasl
> %if %{gcj_support}
> # libgcj aot-compiled native libraries
> BuildRequires:    java-gcj-compat-devel >= 1.0.31
> Requires(post):   java-gcj-compat >= 1.0.31
> Requires(postun): java-gcj-compat >= 1.0.31
> %else
> BuildArch:      noarch
> %endif
> 

why not replace the 

Requires(post):   java-gcj-compat >= 1.0.31
Requires(postun): java-gcj-compat >= 1.0.31

with 

Requires: java-gcj-compat >= 1.0.31.

The post and postun problems I am having seem to be because
 /usr/bin/rebuild-gcj-db can not be found during post and postun.  If
Requires: java-gcj-compat >= 1.0.31 is used, whenever
 the post or postun is taking place, rebuild-gcj-db will be present.

Dave




More information about the fedora-devel-java-list mailing list