FS#59904 - [java-openjfx] Missing dependency to gtk2

Attached to Project: Arch Linux
Opened by binaryanomaly (binaryanomaly) - Sunday, 02 September 2018, 08:47 GMT
Last edited by Eli Schwartz (eschwartz) - Monday, 03 September 2018, 17:06 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

According to the wiki https://www.archlinux.org/packages/extra/x86_64/java-openjfx/ and here https://bugs.openjdk.java.net/browse/JDK-8120519 java-openjfx should depend on gtk2 but it seems not to be correctly resolved.

pacman -Qii java-openjfx
Depends On : java-runtime-openjdk=8 gstreamer libxtst webkit2gtk ffmpeg qt5-base

Additional info:
* package version(s)
* config and/or log files etc.

I discovered this when I tried to install cryptomator https://aur.archlinux.org/packages/cryptomator/

Steps to reproduce:

Install cryptomator from AUR (choose jdk8), gtk2 did not get installed as a dependency and cryptomator/java-openjfx threw an error:

18:22:56.362 [main] [INFO ] org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.3.5 on Linux 4.18.5-arch1-1-ARCH (amd64) Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280) at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221) at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:248) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209) at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675) at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124) ... 1 more Exception in thread "main" java.lang.RuntimeException: No toolkit found at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209) at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675) at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) 18:22:56.459 [Thread-1] [INFO ] o.c.launcher.CleanShutdownPerformer - Goodbye.


This task depends upon

Closed by  Eli Schwartz (eschwartz)
Monday, 03 September 2018, 17:06 GMT
Reason for closing:  Not a bug
Additional comments about closing:  openjfx does not need gtk2 to run, but the AUR package does need it. openjfx seems to have support for legacy gtk2 but it is still the responsibility of the package which needs it, to depend on it.
Comment by Eli Schwartz (eschwartz) - Monday, 03 September 2018, 04:55 GMT
I don't see anything that hints toward this. We have several packages, meanwhile, that work just fine with the current openjfx package -- I don't see why this needs to depend on both gtk3 and gtk2
Comment by binaryanomaly (binaryanomaly) - Monday, 03 September 2018, 08:09 GMT
"pacman -Qii java-openjfx" doesn't list a gtk3 dependency here? Only: java-runtime-openjdk=8 gstreamer libxtst webkit2gtk ffmpeg qt5-base

Why is gtk2 listed as a dependency in the wiki https://www.archlinux.org/packages/extra/x86_64/java-openjfx/ but not implemented?

What would be the correct solution then? Assumed we all agree that "pacman -S package" should ideally install all required dependencies for a package?
Comment by Eli Schwartz (eschwartz) - Monday, 03 September 2018, 11:52 GMT
-_- Do you realize that webkit2gtk is gtk3 software?

And what wiki do you refer to? The package index is not a wiki. Moreover it most definitely does not list gtk2 as a dependency either.

Let me repeat: why do you think openjfx needs to have gtk2 installed in order to run?
Comment by binaryanomaly (binaryanomaly) - Monday, 03 September 2018, 12:47 GMT
> Do you realize that webkit2gtk is gtk3 software?

No, didn't know. Then that is clear.

> And what wiki do you refer to? The package index is not a wiki. Moreover it most definitely does not list gtk2 as a dependency either.

Sorry meant of course the package index and there it IS listed under Dependencies here: https://www.archlinux.org/packages/extra/x86_64/java-openjfx/ and as Required by java-openjfx (make) here: https://www.archlinux.org/packages/extra/x86_64/gtk2/ or does that mean something completely different (not sure about the "make")? Or is that info out of date?

> Let me repeat: why do you think openjfx needs to have gtk2 installed in order to run?

As mentioned in the bug I tried to install cryptomator which requires openjfx but obviously fails to launch as the error message in the bug shows. Only after manually installing gtk2 it worked so the question is: Is it a missing dependency of openjfx or should it rather be a dependency in the cryptomator package itself? If I look at the package index info page I get the impression that it is a missing dependency of openjfx?

If openjfx only depends on gtk3: Would that imply that every package that needs openjfx and gtk2, should declare the dependency to gtk2 explicitly because openjfx only implicitly depends on gtk3?
Comment by loqs (loqs) - Monday, 03 September 2018, 14:33 GMT
java-openjfx does makedepends on gtk2 perhaps it should optdepends on gtk2 as well and cryptomator should depends gtk2.
Comment by binaryanomaly (binaryanomaly) - Monday, 03 September 2018, 14:55 GMT
Ok thanks, I guess that is the way to go then.

Loading...