Bug#959224: buster-pu: package scilab/6.0.1-10
Le vendredi 01 mai 2020 à 11:59 +0100, Adam D. Barratt a écrit :
> On Fri, 2020-05-01 at 12:37 +0200, Julien Puydt wrote:
> > No... it's either with Gilles' patch and it works with 11.0.7 or
> > without and it works with 11.0.6... any other combination doesn't
> > work.
With Gilles' improved patch, I could build (hence, run) scilab in two
schroots : one is bare stable with openjdk 11.0.6, and the other stable
with security updates with openjdk 11.0.7.
So you'll find at the end the new commit I have against scilab's stable
6.0.1-10 to make it a 6.0.1-11+deb10u11.
Cheers,
JP
PS:
commit a243d928e74f04edbb13686218dff5d6a6a90999
Author: Julien Puydt <jpuydt@debian.org>
Date: Thu Apr 30 17:22:15 2020 +0200
Add patch from Gilles Filippini to fix library path loading with
the recent openjdk 11.0.7 upload. (Closes: #955694, #959034)
diff --git a/debian/changelog b/debian/changelog
index cf6e4d47f..6578fd506 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+scilab (6.0.1-11+deb10u1) buster; urgency=medium
+
+ * Add patch from Gilles Filippini to fix library path loading
+ with the recent openjdk 11.0.7 upload. (Closes: #955694, #959034)
+
+ -- Julien Puydt <jpuydt@debian.org> Thu, 30 Apr 2020 17:15:32 +0200
+
scilab (6.0.1-10) unstable; urgency=medium
[ Alexis Murzeau ]
diff --git a/debian/patches/addLibraryPath.patch
b/debian/patches/addLibraryPath.patch
new file mode 100644
index 000000000..84abb8df3
--- /dev/null
+++ b/debian/patches/addLibraryPath.patch
@@ -0,0 +1,50 @@
+Description: openjdk 11.0.7 changes how reloading java.library.path
works
+ Now it's not possible anymore to force it by setting sys_paths to
null
+ The related jdk changeset is:
+ http://hg.openjdk.java.net/jdk-updates/jdk11u/rev/21710e014d7f
+Author: Gilles Filippini
+Forwarded: http://bugzilla.scilab.org/show_bug.cgi?id=16423
+
+---
scilab.orig/modules/jvm/src/java/org/scilab/modules/jvm/LibraryPath.jav
a
++++
scilab/modules/jvm/src/java/org/scilab/modules/jvm/LibraryPath.java
+@@ -19,7 +19,9 @@
+ /*-------------------------------------------------------------------
-------*/
+ import java.io.IOException;
+ import java.io.File;
++import java.lang.reflect.Method;
+ import java.lang.reflect.Field;
++import java.lang.reflect.InvocationTargetException;
+ /*-------------------------------------------------------------------
-------*/
+ /*
http://forum.java.sun.com/thread.jspa?threadID=135560&start=15&tstart=0
*/
+ /*-------------------------------------------------------------------
-------*/
+@@ -64,14 +66,25 @@
+ /* The order matter here... see bug #4022 */
+ String newLibPath = System.getProperty(JAVALIBRARYPATH) +
File.pathSeparator + p;
+ System.setProperty(JAVALIBRARYPATH, newLibPath);
++ // First try the new initLibraryPaths method
+ try {
+- Field fieldSysPath =
ClassLoader.class.getDeclaredField("sys_paths");
+- fieldSysPath.setAccessible(true);
+- if (fieldSysPath != null) {
++ final Method initLibraryPaths =
ClassLoader.class.getDeclaredMethod("initLibraryPaths");
++ initLibraryPaths.setAccessible(true);
++ initLibraryPaths.invoke(null);
++ } catch (NoSuchMethodException e) {
++ // The initLibraryPaths method doesn't exist
++ // Fallback setting sys_paths to null
++ try {
++ Field fieldSysPath =
ClassLoader.class.getDeclaredField("sys_paths");
++ fieldSysPath.setAccessible(true);
+ fieldSysPath.set(System.class.getClassLoader(),
null);
++ } catch (NoSuchFieldException e1) {
++ throw new IOException("Error
NoSuchFieldException, could not add path to " + JAVALIBRARYPATH);
++ } catch (IllegalAccessException e1) {
++ throw new IOException("Error
IllegalAccessException, could not add path to " + JAVALIBRARYPATH);
+ }
+- } catch (NoSuchFieldException e) {
+- throw new IOException("Error NoSuchFieldException,
could not add path to " + JAVALIBRARYPATH);
++ } catch (InvocationTargetException e) {
++ throw new IOException("Error
InvocationTargetException, could not add path to " + JAVALIBRARYPATH);
+ } catch (IllegalAccessException e) {
+ throw new IOException("Error IllegalAccessException,
could not add path to " + JAVALIBRARYPATH);
+ }
diff --git a/debian/patches/series b/debian/patches/series
index c00c002ff..1979678c0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+addLibraryPath.patch
adddemo.diff
librarypath.diff
jh.diff
Reply to: