Le vendredi 01 mai 2020 à 15:39 +0100, Adam D. Barratt a écrit : > > Why -11? I assume the unstable upload will be 6.1.0+dfsg1-3, so this > is still the first stable update to 6.0.1-10.
I uploaded 6.1.0+dfsg1-3 right now with the improved patch. Here is the new commit against 6.0.1-10, making it 6.0.1-10+deb10u1. Cheers, JP PS: diff --git a/debian/changelog b/debian/changelog index cf6e4d47f..deede011f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 <[email protected]> Fri, 01 May 2020 16:47:40 +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

