Package: release.debian.org Severity: normal Tags: buster User: release.debian....@packages.debian.org Usertags: pu
I received reports (#955694 [main report], #956908 [duplicate]) that scilab 6.1.0+dfsg1-1 stopped working in sid : the move from openjdk 11.0.6 to 11.0.7 broke some of its code ; Gilles Filippini provided a patch and 6.1.0+dfsg1-2 fixed the problem. Unfortunately, this openjdk also found its way to stable-sec, so broke scilab 6.0.1-10 there (#959034), so I would like to upload a 6.0.1-11+deb10u1 which would be 6.0.1-10 + adapted patch. >From tag debian/6.0.1-10, I added a single commit, and checked with sbuild and a stable+stable-sec that it unbroke things (scilab is run to compile doc, so getting the package to build is a valid check). I'm putting that commit at the end of this mail. The same openjdk will probably also move to stable, so the fixed scilab should also follow it. Thanks, JP PS: here it is: commit 55df6269e8ac1a5a4200dbb759c3661bbd1249f2 Author: Julien Puydt <jpu...@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 <jpu...@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..d20db1600 --- /dev/null +++ b/debian/patches/addLibraryPath.patch @@ -0,0 +1,40 @@ +Description: openjdk 11.0.7 changes how reloading java.library.path works + Not 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,8 @@ + /*--------------------------------------------------------------------------*/ + import java.io.IOException; + import java.io.File; +-import java.lang.reflect.Field; ++import java.lang.reflect.Method; ++import java.lang.reflect.InvocationTargetException; + /*--------------------------------------------------------------------------*/ + /*http://forum.java.sun.com/thread.jspa?threadID=135560&start=15&tstart=0 */ + /*--------------------------------------------------------------------------*/ +@@ -65,13 +66,13 @@ + String newLibPath = System.getProperty(JAVALIBRARYPATH) + File.pathSeparator + p; + System.setProperty(JAVALIBRARYPATH, newLibPath); + try { +- Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths"); +- fieldSysPath.setAccessible(true); +- if (fieldSysPath != null) { +- fieldSysPath.set(System.class.getClassLoader(), null); +- } +- } catch (NoSuchFieldException e) { +- throw new IOException("Error NoSuchFieldException, could not add path to " + JAVALIBRARYPATH); ++ final Method initLibraryPaths = ClassLoader.class.getDeclaredMethod("initLibraryPaths"); ++ initLibraryPaths.setAccessible(true); ++ initLibraryPaths.invoke(null); ++ } catch (NoSuchMethodException e) { ++ throw new IOException("Error NoSuchMethodException, 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