Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.

From: Alexey Abramov <[email-masked]>
Date: Sat, 30 May 2020 18:45:19 +0200

Ludovic Courtès <[email-masked]> writes:

> Alexey Abramov <[email-masked]> skribis:
>
>> ---
>>  gnu/packages/java.scm | 165 ++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 165 insertions(+)
>
> Please add a commit log.
>
> [...]
>
>> +         (add-after 'build 'generate-headers
>> +           (lambda* (#:key inputs #:allow-other-keys)
>
> Could you add a comment explaining what this phase does and why we’re
> doing all this?  (Same for the other phases.)

Done.

>
>> +             (let* ((module (string-append (getcwd) "/modules/web"))
>> +                    (classes (string-append module "/build/classes/java/main"))
>> +                    (web-generated-headers (string-append module "/build/generated-src/headers"))
>> +                    (web-generated-classes '("com.sun.webkit.ContextMenu"
>> +                                             "com.sun.webkit.ContextMenuItem"
>> +                                             "com.sun.webkit.CursorManager"
>
> Perhaps add a comment explaining how you obtained this list of classes
> so that our future selves know how to update it.
>
> Since this is a Web thing, could you check whether it contains pre-built
> (“minified”) JavaScript?  If it does, that’s a problem because we
> generally provide only software built from source.

We build not only a web component here, but webkit as well. Webkit requires some extra 3rd party libraries icu, libxml, libxslt and sqlite which are already in openjfx source bundle. We also build them now.

One thing to note here, I have tested openjfx only with davmail in order to make oauth2 works. There is one exception during the authorization. When oauth accepts your password and waits for you to approve from another device, it changes the form and tries to shadow some captions, and those captions just don't show up during that period of time. Don't know what to do here. I am not a java developer, so probably it requires more testing. I was planning to talk about on openjfx mailing list, but time didn't let me.

--8<---------------cut here---------------start------------->8---
Error: CPU/SIMD peer not found for: Blend_SRC_IN due to error: com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_INPeer
java.lang.RuntimeException: Could not create peer  Blend_SRC_IN for renderer com.sun.scenario.effect.impl.prism.sw.PSWRenderer@6218eb01
	at com.sun.scenario.effect.impl.Renderer.getPeerInstance(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.getPeer(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.getPeer(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.filterImageDatas(Unknown Source)
	at com.sun.scenario.effect.Blend.filterImageDatas(Unknown Source)
	at com.sun.scenario.effect.FilterEffect.filter(Unknown Source)
	at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext$ClipLayer.render(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.renderLayer(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreStateInternal(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreState(Unknown Source)
	at com.sun.webkit.graphics.GraphicsDecoder.decode(Unknown Source)
	at com.sun.webkit.graphics.WCRenderQueue.decode(Unknown Source)
	at com.sun.webkit.WebPage.paint2GC(Unknown Source)
	at com.sun.webkit.WebPage.paint(Unknown Source)
	at com.sun.javafx.sg.prism.web.NGWebView.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
	at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
	at com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
	at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(Unknown Source)
	at com.sun.javafx.tk.quantum.UploadingPainter.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at com.sun.javafx.tk.RenderJob.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:748)
--8<---------------cut here---------------end--------------->8---

--
Alexey