[fedora-java] Re: aot-compile-rpm and bouncycastle

Andrew Haley aph at redhat.com
Wed Jul 8 15:54:49 UTC 2009


Jerry James wrote:
> On Tue, Jul 7, 2009 at 1:23 PM, Jerry James<loganjerry at gmail.com> wrote:
>> When I build an RPM for a Java application on F-11, the
>> aot-compile-rpm step is issuing some warnings I don't understand.
>> They look like this:
>>
>> WARNING: Error loading security provider
>> org.bouncycastle.jce.provider.BouncyCastleProvider:
>> java.lang.ClassNotFoundException:
>> org.bouncycastle.jce.provider.BouncyCastleProvider not found in
>> gnu.gcj.runtime.SystemClassLoader{urls=[file:./],
>> parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}

I think it's just a warning that you can ignore.

>> The application in question does not use bouncycastle, directly or
>> indirectly.  On the other hand, I do have bouncycastle installed.  Is
>> something misconfigured?  Should bouncycastle be a BuildRequires for
>> gcj-using RPMs?

It's a bug in bouncycastle.

The latest spin of bouncycastle disabled all the gcj-isms so the
symlinks that gcj needs to find bouncycastle are no longer installed,
but the RPM still adds bouncycastle to the Classpath providers list.

Here's the test case:

import java.security.*;

public class Sec
{
  public static void main(String[] args)
  {
    for (Provider p: Security.getProviders())
      System.out.println(p);
  }
}

 $ gij Sec
WARNING: Error loading security provider org.bouncycastle.jce.provider.BouncyCastleProvider: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}

We can just make sure the gcj symlinks are always installed:

--- bouncycastle.spec~  2009-04-20 23:44:44.000000000 +0100
+++ bouncycastle.spec   2009-07-08 16:43:01.000000000 +0100
@@ -4,7 +4,7 @@

 Summary:          Bouncy Castle Crypto Package for Java
 Name:             bouncycastle
-Version:          1.43
+Version:          1.43ext2
 Release:          1%{?dist}
 Group:            System Environment/Libraries
 License:          MIT
@@ -81,11 +81,11 @@
 pushd $RPM_BUILD_ROOT%{_javadir}
   ln -sf bcprov-%{version}.jar bcprov.jar
 popd
-%if %{with_gcj}
   install -dm 755 $RPM_BUILD_ROOT%{_javadir}/gcj-endorsed
   pushd $RPM_BUILD_ROOT%{_javadir}/gcj-endorsed
     ln -sf ../bcprov-%{version}.jar bcprov-%{version}.jar
   popd
+%if %{with_gcj}
   %{_bindir}/aot-compile-rpm
 %endif

@@ -161,8 +161,8 @@
 %doc *.html
 %{_javadir}/bcprov.jar
 %{_javadir}/bcprov-%{version}.jar
-%if %{with_gcj}
   %{_javadir}/gcj-endorsed/bcprov-%{version}.jar
+%if %{with_gcj}
   %{_libdir}/gcj/%{name}
 %endif
 %{_sysconfdir}/java/security/security.d/2000-%{classname}

Orcan, please do this.

Andrew.




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