[pl] Fix JPL interface

Petr Pisar ppisar at fedoraproject.org
Thu Mar 8 14:57:39 UTC 2012


commit f9fdbdf223ec9fc24df0cc249138b658f7559bd4
Author: Petr Písař <ppisar at redhat.com>
Date:   Thu Mar 8 15:09:23 2012 +0100

    Fix JPL interface

 pl-5.10.2-jni.patch |   21 ---------------------
 pl-6.0.2-jni.patch  |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 pl.spec             |   17 +++++++++++------
 3 files changed, 61 insertions(+), 27 deletions(-)
---
diff --git a/pl-6.0.2-jni.patch b/pl-6.0.2-jni.patch
new file mode 100644
index 0000000..e07a1da
--- /dev/null
+++ b/pl-6.0.2-jni.patch
@@ -0,0 +1,50 @@
+From d3695f95a95e834ed13c8f02f21feaf22ce51627 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Thu, 8 Mar 2012 14:54:23 +0100
+Subject: [PATCH] Fix JNI
+
+Prefer JNI and poved JNI files per Java Fedora packaging guidelines
+---
+ packages/jpl/jpl.pl                |    5 +++--
+ packages/jpl/src/java/jpl/JPL.java |    2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/packages/jpl/jpl.pl b/packages/jpl/jpl.pl
+index 83b8aee..f614d9e 100644
+--- a/packages/jpl/jpl.pl
++++ b/packages/jpl/jpl.pl
+@@ -4390,7 +4390,8 @@ prolog:error_message(java_exception(Ex)) -->
+ :- multifile user:file_search_path/2.
+ :- dynamic   user:file_search_path/2.
+ 
+-user:file_search_path(jar, swi(lib)).
++user:file_search_path(jar, 'LIBDIR/swipl-jpl').
++user:file_search_path(jni, 'LIBDIR/swipl-jpl').
+ 
+ %%	add_search_path(+Var, +Value) is det.
+ %
+@@ -4534,7 +4535,7 @@ add_jpl_to_classpath :-
+ 
+ libjpl(File) :-
+ 	(   current_prolog_flag(unix, true)
+-	->  File = foreign(libjpl)
++	->  File = jni(libjpl)
+ 	;   File = foreign(jpl)
+ 	).
+ 
+diff --git a/packages/jpl/src/java/jpl/JPL.java b/packages/jpl/src/java/jpl/JPL.java
+index 1c82d83..311355c 100644
+--- a/packages/jpl/src/java/jpl/JPL.java
++++ b/packages/jpl/src/java/jpl/JPL.java
+@@ -97,7 +97,7 @@ public class JPL {
+ 		} else if (nativeLibraryDir != null) {
+             System.load((new File(nativeLibraryDir, System.mapLibraryName(nativeLibraryName))).getAbsolutePath());
+ 		} else {
+-			System.loadLibrary(nativeLibraryName); // as resolved somewhere on system property 'java.library.path'
++			System.load((new File(LIBDIR, System.mapLibraryName(nativeLibraryName))).getAbsolutePath());
+ 		}
+ 	}
+ 	// setDTMMode
+-- 
+1.7.7.6
+
diff --git a/pl.spec b/pl.spec
index 0426674..ab757c8 100644
--- a/pl.spec
+++ b/pl.spec
@@ -29,7 +29,7 @@ Source2:    %{url}download/xpce/doc/userguide/userguide.html.tgz
 Source3:    JavaConfig.java
 Patch1:     %{name}-5.10.5-jpl-configure.patch
 Patch2:     %{name}-5.10.5-man-files.patch
-Patch3:     %{name}-5.10.2-jni.patch
+Patch3:     %{name}-6.0.2-jni.patch
 Patch4:     %{name}-5.10.5-pc.patch
 
 # Base
@@ -190,6 +190,7 @@ in Prolog. In both setups it provides a re-entrant bidirectional interface.
 # Adjustments to take into account the new location of JNI stuff
 sed --in-place=.jni2 -e 's#LIBDIR#%{_libdir}#g' packages/jpl/jpl.pl
 sed --in-place=.jni2 -e 's#LIBDIR#%{_libdir}#g' packages/jpl/src/java/jpl/fli/Prolog.java
+sed --in-place=.jni2 -e 's#LIBDIR#"%{_libdir}/swipl-jpl"#g' packages/jpl/src/java/jpl/JPL.java
 
 
 %build
@@ -231,11 +232,13 @@ popd
 %if %{with_java}
 # Move the JPL JNI stuff to where the Java packaging guidelines 
 # say it should be
-mkdir -p $RPM_BUILD_ROOT%{_libdir}/swipl-jpl
-mv $RPM_BUILD_ROOT%{_libdir}/swipl-%{version}/lib/*/libjpl.so \
-        $RPM_BUILD_ROOT%{_libdir}/swipl-jpl/
-mv $RPM_BUILD_ROOT%{_libdir}/swipl-%{version}/lib/jpl.jar \
-        $RPM_BUILD_ROOT%{_libdir}/swipl-jpl/
+pushd $RPM_BUILD_ROOT%{_libdir}
+mkdir -p swipl-jpl
+mv swipl-%{version}/lib/*/libjpl.so swipl-jpl/
+mv swipl-%{version}/lib/jpl.jar swipl-jpl/
+# Original JAR locations is referenced by internal libraries and examples
+ln -s ../../swipl-jpl/jpl.jar swipl-%{version}/lib/jpl.jar
+popd
 %endif
 
 mv $RPM_BUILD_ROOT%{_libdir}/swipl-%{version}/xpce/man/xpce-client.1 \
@@ -320,6 +323,7 @@ rm $RPM_BUILD_ROOT%{_libdir}/swipl-%{version}/xpce/bin/x86_64-linux/xpce-client
 %files jpl
 %doc packages/jpl/docs/*
 %doc packages/jpl/examples
+%{_libdir}/swipl-%{version}/lib/jpl.jar
 %{_libdir}/swipl-%{version}/library/jpl.pl
 %{_libdir}/swipl-jpl
 %endif
@@ -335,6 +339,7 @@ rm $RPM_BUILD_ROOT%{_libdir}/swipl-%{version}/xpce/bin/x86_64-linux/xpce-client
 - Move documentation into separate sub-package
 - Move XPCE into separate sub-package
 - Move ODBC interface into separate sub-package
+- Fix JPL interface (bug #590499)
 
 * Thu Mar 01 2012 Petr Pisar <ppisar at redhat.com> - 6.0.1-1
 - 6.0.1 bump


More information about the scm-commits mailing list