[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#959224: buster-pu: package scilab/6.0.1-10



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@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 <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..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


Reply to: