Re: Bug#900912: "AtkWrapper not found" error impacting JOSM on Ubuntu/Mint
- To: Vincent Privat <vincent@josm.openstreetmap.de>, 900912@bugs.debian.org
- Cc: Debian Java <debian-java@lists.debian.org>, josm-dev <josm-dev@openstreetmap.org>, Kevin Kenny <kevin.b.kenny@gmail.com>, elbrus@debian.org
- Subject: Re: Bug#900912: "AtkWrapper not found" error impacting JOSM on Ubuntu/Mint
- From: Samuel Thibault <sthibault@debian.org>
- Date: Mon, 1 Apr 2019 15:54:17 +0200
- Message-id: <[🔎] 20190401135417.ljmzfm6gspsbkybh@function>
- Mail-followup-to: Samuel Thibault <sthibault@debian.org>, Vincent Privat <vincent@josm.openstreetmap.de>, 900912@bugs.debian.org, Debian Java <debian-java@lists.debian.org>, josm-dev <josm-dev@openstreetmap.org>, Kevin Kenny <kevin.b.kenny@gmail.com>, elbrus@debian.org
- In-reply-to: <CABBycTTUu=7FwDZTKDBrR_TEiPrGvRtVn4gBM61M5eQ+dxXccA@mail.gmail.com>
- References: <CABBycTSemAqZjMhSCnk1sK1Ow=0hV82wtOPwoiBPKcbM5CS9RQ@mail.gmail.com> <CABBycTT8G6yBPpxc9kn5FhuEo1r_86d8sbULdph2R+9yysiGxg@mail.gmail.com> <CALREZe-kSCtO5xkaizn5n4FaWmWun4BtDqYbT_zu6SXaQ53MOg@mail.gmail.com> <CABBycTStLXM8WHhkb3AfxNp=fuNJMtq2doB3rSdiqTB6FMydDw@mail.gmail.com> <CABBycTS9h3vr7Oue2F4M9u==-CRPEi2Pv9iswLPAzmTKFAmWXQ@mail.gmail.com> <20180824094642.6isqpts74t3xzhgv@var.youpi.perso.aquilenet.fr> <20180606130037.yn774bjq2uibdhx4@var.youpi.perso.aquilenet.fr> <CABBycTTUu=7FwDZTKDBrR_TEiPrGvRtVn4gBM61M5eQ+dxXccA@mail.gmail.com>
Hello,
Vincent Privat, le ven. 24 août 2018 18:33:56 +0200, a ecrit:
> Patching openjdk with your try/catch proposal and making the ATK wrapper a
> Recommends sounds a good idea.
>
> Don't wait for openjdk guys for an answer: they simply don't care anymore with
> desktop technologies.
FI, I plan to upload the attached NMU, which does it: adding the ATK
wrapper classpath, catching ATK wrapper load failure, so we can enable
it again.
Samuel
diff -Nru openjdk-11-11.0.3+4/debian/changelog openjdk-11-11.0.3+4/debian/changelog
--- openjdk-11-11.0.3+4/debian/changelog 2019-03-29 09:06:03.000000000 +0100
+++ openjdk-11-11.0.3+4/debian/changelog 2019-03-31 17:49:09.000000000 +0200
@@ -1,3 +1,13 @@
+openjdk-11 (11.0.3+4-3.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * patches/jaw-classpath.diff: Fix finding the Java ATK wrapper.
+ * patches/jaw-optional.diff: Make failing to load the Java ATK wrapper
+ non-fatal.
+ * rules: Enable Java ATK wrapper for Buster. Closes: #900912.
+
+ -- Samuel Thibault <sthibault@debian.org> Sun, 31 Mar 2019 17:49:09 +0200
+
openjdk-11 (11.0.3+4-3) unstable; urgency=medium
[ Matthias Klose ]
diff -Nru openjdk-11-11.0.3+4/debian/patches/jaw-classpath.diff openjdk-11-11.0.3+4/debian/patches/jaw-classpath.diff
--- openjdk-11-11.0.3+4/debian/patches/jaw-classpath.diff 1970-01-01 01:00:00.000000000 +0100
+++ openjdk-11-11.0.3+4/debian/patches/jaw-classpath.diff 2019-03-31 17:49:09.000000000 +0200
@@ -0,0 +1,14 @@
+Fix finding the Java ATK wrapper, see #900912
+
+Index: openjdk-10-10.0.1+10/src/hotspot/os/linux/os_linux.cpp
+===================================================================
+--- openjdk-10-10.0.1+10.orig/src/hotspot/os/linux/os_linux.cpp
++++ openjdk-10-10.0.1+10/src/hotspot/os/linux/os_linux.cpp
+@@ -369,6 +369,7 @@ void os::init_system_properties_values()
+ }
+ Arguments::set_java_home(buf);
+ set_boot_path('/', ':');
++ Arguments::append_sysclasspath("/usr/share/java/java-atk-wrapper.jar");
+ }
+
+ // Where to look for native libraries.
diff -Nru openjdk-11-11.0.3+4/debian/patches/jaw-optional.diff openjdk-11-11.0.3+4/debian/patches/jaw-optional.diff
--- openjdk-11-11.0.3+4/debian/patches/jaw-optional.diff 1970-01-01 01:00:00.000000000 +0100
+++ openjdk-11-11.0.3+4/debian/patches/jaw-optional.diff 2019-03-31 17:49:09.000000000 +0200
@@ -0,0 +1,20 @@
+Make failing to load the Java ATK wrapper non-fatal
+
+---
+ src/java.desktop/share/classes/java/awt/Toolkit.java | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/java.desktop/share/classes/java/awt/Toolkit.java
++++ b/src/java.desktop/share/classes/java/awt/Toolkit.java
+@@ -610,7 +610,11 @@ public abstract class Toolkit {
+ }
+ });
+ if (!GraphicsEnvironment.isHeadless()) {
++ try {
+ loadAssistiveTechnologies();
++ } catch (java.awt.AWTError e) {
++ // too bad
++ }
+ }
+ }
+ return toolkit;
diff -Nru openjdk-11-11.0.3+4/debian/patches/series openjdk-11-11.0.3+4/debian/patches/series
--- openjdk-11-11.0.3+4/debian/patches/series 2019-03-28 09:32:28.000000000 +0100
+++ openjdk-11-11.0.3+4/debian/patches/series 2019-03-31 17:49:09.000000000 +0200
@@ -38,3 +38,5 @@
jdk-improve-gtk3-compatibility.patch
keep-gtk2-as-default.patch
8221083.diff
+jaw-classpath.diff
+jaw-optional.diff
diff -Nru openjdk-11-11.0.3+4/debian/rules openjdk-11-11.0.3+4/debian/rules
--- openjdk-11-11.0.3+4/debian/rules 2019-03-28 20:44:54.000000000 +0100
+++ openjdk-11-11.0.3+4/debian/rules 2019-03-31 17:49:09.000000000 +0200
@@ -1081,13 +1081,13 @@
ifeq ($(with_bridge),atk)
# only add releases that are known to work with atk
# by default leave atk disabled
-# ifneq (,$(filter $(distrel),))
-# cp -p debian/accessibility-atk.properties.enabled \
+ ifneq (,$(filter $(distrel),buster))
+ cp -p debian/accessibility-atk.properties.enabled \
$(d)/$(basedir)/conf/accessibility.properties
-# else
+ else
cp -p debian/accessibility-atk.properties.disabled \
$(d)/$(basedir)/conf/accessibility.properties
-# endif
+ endif
else
cp -p debian/accessibility.properties $(d)/$(basedir)/conf/
endif
@@ -1427,23 +1427,26 @@
endif
endif
-ifeq (0,1)
-# FIXME: ext not longer supported
ifeq ($(with_bridge),atk)
: # create links for the atk wrapper
+ ifeq (0,1)
+ # FIXME: ext no longer supported
echo "usr/share/java/java-atk-wrapper.jar $(basedir)/lib/ext/java-atk-wrapper.jar" \
>> $(d_jre).links
- echo "usr/lib$(multiarch_dir)/jni/libatk-wrapper.so $(basedir)/lib/ext/libatk-wrapper.so" \
+ endif
+ echo "usr/lib$(multiarch_dir)/jni/libatk-wrapper.so $(basedir)/lib/libatk-wrapper.so" \
>> $(d_jre).links
else ifeq ($(with_bridge),yes)
+ ifeq (0,1)
+# FIXME: ext no longer supported
: # create links for the gnome accessibility bridge
echo "usr/share/java/gnome-java-bridge.jar $(basedir)/lib/ext/gnome-java-bridge.jar" \
>> $(d_jre).links
ifeq ($(with_jni_bridge),yes)
- echo "usr/lib$(multiarch_dir)/jni/libjava-access-bridge-jni.so $(basedir)/lib/ext/libjava-access-bridge-jni.so" \
+ echo "usr/lib$(multiarch_dir)/jni/libjava-access-bridge-jni.so $(basedir)/lib/libjava-access-bridge-jni.so" \
>> $(d_jre).links
endif
-endif
+ endif
endif
: # create links for the config/lib files
Reply to: