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

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



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 <jpuydt@debian.org>  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


Reply to: