Re: Mending the Java native library mess before F10

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Walluck wrote:
Fernando Nasser wrote:
Can't we have the real JAR and the .so in %{_libdir}/%{name} as required by the guideline and add a symlink to the JAR (only) in /usr/share/java ?

JPackage already provides a location for these jars, and this location is searched by jpackage-utils. The location is %_jnidir, and it seems to be defined as %_prefix/lib/java, but it should probably be %_libdir/java.

Contrast this with Debian which palces .so in /usr/lib/jni and the jar in /usr/share/java.

If JNI using JAR files are really not arch-specific, they should go in %_javadir. I do not see why the Fedora guidelines place jars in application-specific directories with the shared library itself.

There are two issues:

1.) No one (Debian, Fedora, JPackage) can agree on the .jar location: (i.) %_prefix/lib/java (ii.) %_libdir/java (iii.) %_javadir (iv.) %_libdir/%name.

2.) If the .jar location is only (iv.) %_libdir/%name as in the Fedora guidelines (no symlinks), then any specs or scripts that use build-classpath on these jars would need to be re-written, and it is not clear why they behave differently from all other jars in this way.

And the JPackage specs and scripts automatically become incompatible.

Breaking compatibility with jpackage just for the change is stupid - at least I don't see any benefit. Breaking compatibility with nomatter what should bring some benefits otherwise we are doing work which bring us only more work and less features.
This also makes things harder for most packagers for several users:
1. Jpackage guidelines and tools are well known - most of the experienced packagers in the java area either have been part of the jpackage once are part now or at least are familiar with them. And I'm not speaking for Fedora guys only. 2. We make our specs harder to maintain - Using build-classpath frees you from details like whether the jar has native parts or not. But with the current policy - placing jars in %_libdir/%name if the jar adds some native parts you should change your spec file. Using build-classpath you just need to rebuild with no changes. But wait - there is even more you can use build-classpath in your startup shell files so you even don't need to rebuild. Please don't break compatibility with JPackage with some policy if you really don't have something much better.

I completely support the following steps :
1. %_jnidir should be defined as %_libdir/java
2. All the jars with native parts should be installed in %_jnidir
3. jpackage-utils should be checked for needed modifications for this change.

Best regards,
Alexander Kurtakov



--
fedora-devel-java-list mailing list
fedora-devel-java-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-java-list

[Index of Archives]     [Red Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux