Version in base suite: 6.0.1-10 Base version: scilab_6.0.1-10 Target version: scilab_6.0.1-10+deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/s/scilab/scilab_6.0.1-10.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/s/scilab/scilab_6.0.1-10+deb10u1.dsc changelog | 7 ++++++ patches/addLibraryPath.patch | 50 +++++++++++++++++++++++++++++++++++++++++++ patches/series | 1 3 files changed, 58 insertions(+) diff -Nru scilab-6.0.1/debian/changelog scilab-6.0.1/debian/changelog --- scilab-6.0.1/debian/changelog 2019-05-18 11:50:11.000000000 +0000 +++ scilab-6.0.1/debian/changelog 2020-05-01 14:47:40.000000000 +0000 @@ -1,3 +1,10 @@ +scilab (6.0.1-10+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 Fri, 01 May 2020 16:47:40 +0200 + scilab (6.0.1-10) unstable; urgency=medium [ Alexis Murzeau ] diff -Nru scilab-6.0.1/debian/patches/addLibraryPath.patch scilab-6.0.1/debian/patches/addLibraryPath.patch --- scilab-6.0.1/debian/patches/addLibraryPath.patch 1970-01-01 00:00:00.000000000 +0000 +++ scilab-6.0.1/debian/patches/addLibraryPath.patch 2020-05-01 14:47:40.000000000 +0000 @@ -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.java ++++ 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 -Nru scilab-6.0.1/debian/patches/series scilab-6.0.1/debian/patches/series --- scilab-6.0.1/debian/patches/series 2019-05-18 11:49:35.000000000 +0000 +++ scilab-6.0.1/debian/patches/series 2020-05-01 14:47:40.000000000 +0000 @@ -1,3 +1,4 @@ +addLibraryPath.patch adddemo.diff librarypath.diff jh.diff