Skip to content

Conversation

koppor
Copy link
Member

@koppor koppor commented Sep 19, 2025

Final TODOs.


Tests:

  • Icon of DMG right
  • Icon of .bib files right - if not, we need to create a second jabref-bibtex.icns file with a different name than the application icon and relink in bibtexAssociations.properties.

This PR builds on #14057.

This PR tries to enable EA builds - to be able to report back to be able to report earlier to https://wiki.openjdk.org/display/quality/Quality+Outreach.


Eclipse Temurin's binaries should soon be available:

image

WIP, because Temurin is not yet available. AKA blocked by adoptium/temurin#96.

Hopefully, we can go back to Temurin (refs adoptium/adoptium-support#1271 (comment) and #13749

Uses "latest" for the dev container to reduce the places where we need to adapt version numbers.

Refs #13933

Maybe related issues

Steps to test

Run JabRef 😅

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • [/] I manually tested my changes in running JabRef (always required)
  • [/] I added JUnit tests for changes (if applicable)
  • [/] I added screenshots in the PR description (if change is visible to the user)
  • [/] I described the change in CHANGELOG.md in a way that is understandable for the average user (if change is visible to the user)
  • [] I checked the user documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request updating file(s) in https://github.com/JabRef/user-documentation/tree/main/en.

@Siedlerchr
Copy link
Member

Requires gradle 9.1

@koppor
Copy link
Member Author

koppor commented Sep 23, 2025

Requires gradle 9.1

Then: Runners to 24; 25 is installed via toolchain 😅

Or wait until we updated our Gradle fork

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

With #13719, we use the most recent gradle development version

@koppor koppor marked this pull request as ready for review September 29, 2025 16:58
@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

Are no x86 mac builds a show stopper?

grafik

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

seems to be fine for macOS:


  Java configuration:
    Distribution: temurin
    Version: 25.0.0+36.0.LTS
    Path: /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/25.0.0-36.0.LTS/x64/Contents/Home

@koppor koppor added the dev: binaries Binary builds should be uploaded to builds.jabref.org label Sep 29, 2025
@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

Mhh...

grafik

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

Seems to be the right commit - 0ae6281

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

macOS does not run with Amazon:

(loaded from file /Users/runner/work/***/***/jabgui/src/main/resources/icons/***.icns).
[18:17:44.601] jdk.jpackage.internal.model.PackagerException: java.nio.file.NoSuchFileException: ***.icns
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:487)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:68)
	at jdk.jpackage/jdk.jpackage.internal.PackagerBuilder.execute(PackagerBuilder.java:67)
	at jdk.jpackage/jdk.jpackage.internal.MacDmgPackager$Builder.execute(MacDmgPackager.java:81)
	at jdk.jpackage/jdk.jpackage.internal.MacDmgBundler.execute(MacDmgBundler.java:80)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.executeBundler(Arguments.java:741)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments.java:702)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arguments.java:553)
	at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:93)
	at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:54)
Caused by: java.nio.file.NoSuchFileException: ***.icns
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystem.copy(UnixFileSystem.java:960)
	at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:280)
	at java.base/java.nio.file.Files.copy(Files.java:1192)
	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline.writeFileAssociationIcons(MacPackagingPipeline.java:434)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline$DefaultTaskContext.execute(PackagingPipeline.java:573)
	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline$TaskContextProxy.execute(MacPackagingPipeline.java:454)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.lambda$createTask$0(PackagingPipeline.java:604)
	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:130)
	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:121)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:480)
	... 9 more

@koppor koppor changed the title [WIP] Update to JDK25 (Temurin) [WIP] Update to JDK25 (Amazon) Sep 29, 2025
@koppor koppor mentioned this pull request Sep 29, 2025
1 task
@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

Supersed by #13991 Temurin does not work, because of

--add-modules jdk.incubator.vector

@koppor koppor closed this Sep 29, 2025
@koppor koppor reopened this Sep 29, 2025
@Siedlerchr
Copy link
Member

22:12:32.668] Benutzerdefinierte Packageressource [DMG-Hintergrund] wird verwendet (aus JabRef-background.tiff geladen).
[22:12:32.673] Benutzerdefinierte Packageressource [Symbol "Datenträger"] wird verwendet (aus JabRef-volume.icns geladen).
[22:12:32.675] DMG-Setup wird vorbereitet: /var/folders/fk/ymndv_ds5h1dv11fbh61v4g40000gn/T/jdk.jpackage12833249008220820156/config/JabRef-dmg-setup.scpt.
[22:12:32.676] Benutzerdefinierte Packageressource [DMG-Setupskript] wird verwendet (aus JabRef-dmg-setup.scpt geladen).
[22:12:32.679] Benutzerdefinierte Packageressource [Info.plist von Java Runtime] wird verwendet (aus Runtime-Info.plist geladen).
[22:12:32.680] Benutzerdefinierte Packageressource [icon] wird verwendet (aus JabRef.icns geladen).
[22:12:32.715] jdk.jpackage.internal.model.PackagerException: java.nio.file.NoSuchFileException: jabref.icns
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:487)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:68)
	at jdk.jpackage/jdk.jpackage.internal.PackagerBuilder.execute(PackagerBuilder.java:67)
	at jdk.jpackage/jdk.jpackage.internal.MacDmgPackager$Builder.execute(MacDmgPackager.java:81)
	at jdk.jpackage/jdk.jpackage.internal.MacDmgBundler.execute(MacDmgBundler.java:80)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.executeBundler(Arguments.java:741)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments.java:702)
	at jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arguments.java:553)
	at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:93)
	at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:54)
Caused by: java.nio.file.NoSuchFileException: jabref.icns
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystem.copy(UnixFileSystem.java:960)
	at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:280)
	at java.base/java.nio.file.Files.copy(Files.java:1192)
	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline.writeFileAssociationIcons(MacPackagingPipeline.java:434)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline$DefaultTaskContext.execute(PackagingPipeline.java:573)
	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline$TaskContextProxy.execute(MacPackagingPipeline.java:454)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.lambda$createTask$0(PackagingPipeline.java:604)
	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:130)
	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:121)
	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:480)
	... 9 more
java.nio.file.NoSuchFileException: jabref.icns

@koppor
Copy link
Member Author

koppor commented Oct 10, 2025

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffc72af6f5f, pid=49632, tid=60916
#
# JRE version: OpenJDK Runtime Environment Corretto-25.0.0.36.2 (25.0+36) (build 25+36-LTS)
# Java VM: OpenJDK 64-Bit Server VM Corretto-25.0.0.36.2 (25+36-LTS, mixed mode, tiered, compact obj headers, z gc, windows-amd64)
# Problematic frame:
# V  [jvm.dll+0x4f6f5f]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   https://github.com/corretto/corretto-25/issues/
#

---------------  S U M M A R Y ------------

Command Line: -Djpackage.app-version=100.0.0 --enable-native-access=ai.djl.tokenizers,ai.djl.pytorch_engine,com.sun.jna,javafx.graphics,javafx.media,javafx.web,org.apache.lucene.core --add-opens=java.base/java.nio=org.apache.pdfbox.io --add-opens=java.base/jdk.internal.ref=org.apache.pdfbox.io --add-modules=jdk.incubator.vector -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders -XX:+UseZGC -XX:+ZUncommit -XX:+UseStringDeduplication -Djpackage.app-path=C:\git-repositories\jabref-all\jabref\jabgui\build\packages\windows-latest\JabRef\JabRef.exe -Djdk.module.main=org.jabref org.jabref/org.jabref.Launcher

Host: AMD Ryzen 9 5900X 12-Core Processor            , 24 cores, 63G,  Windows 10 , 64 bit Build 19041 (10.0.19041.5915)
Time: Fri Oct 10 09:48:37 2025 W. Europe Daylight Time elapsed time: 9.463205 seconds (0d 0h 0m 9s)

---------------  T H R E A D  ---------------

Current thread (0x000002197d2e2d80):  JavaThread "JavaFX Application Thread"        [_thread_in_vm, id=60916, stack(0x0000003356d00000,0x0000003356e00000) (1024K)]

Stack: [0x0000003356d00000,0x0000003356e00000],  sp=0x0000003356dfd430,  free space=1013k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x4f6f5f]  (no source info available)
C  0x00007ffc375fbdbb  (no source info available)
C  0x00007ffc37c1d365  (no source info available)
C  0x000002191a85d32f  (no source info available)

The last pc belongs to native method entry point (kind = native) (printed below).
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.webkit.WebPage.twkGetDocument(J)Lorg/w3c/dom/Document;+0 javafx.web@25
j  com.sun.webkit.WebPage.getDocument(J)Lorg/w3c/dom/Document;+62 javafx.web@25
j  javafx.scene.web.WebEngine$DocumentProperty.get()Lorg/w3c/dom/Document;+34 javafx.web@25
j  javafx.scene.web.WebEngine$DocumentProperty.get()Ljava/lang/Object;+1 javafx.web@25
J 5944 c2 javafx.beans.binding.ObjectExpression.getValue()Ljava/lang/Object; javafx.base@25 (5 bytes) @ 0x000002191b23a6cc [0x000002191b23a680+0x000000000000004c]
j  javafx.scene.web.WebEngine.getDocument()Lorg/w3c/dom/Document;+4 javafx.web@25
j  org.jabref.gui.preview.PreviewViewer.lambda$configurePreviewView$0(Ljavafx/beans/value/ObservableValue;Ljavafx/concurrent/Worker$State;Ljavafx/concurrent/Worker$State;)V+15 org.jabref
j  org.jabref.gui.preview.PreviewViewer$$Lambda+0x0000000009a16e00.changed(Ljavafx/beans/value/ObservableValue;Ljava/lang/Object;Ljava/lang/Object;)V+13 org.jabref
J 6082 c1 com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent()V javafx.base@25 (96 bytes) @ 0x0000021913c5b824 [0x0000021913c5b400+0x0000000000000424]
J 9240 c2 javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent()V javafx.base@25 (19 bytes) @ 0x000002191b37be34 [0x000002191b37bd80+0x00000000000000b4]
J 5940 c2 javafx.beans.property.ObjectPropertyBase.set(Ljava/lang/Object;)V javafx.base@25 (76 bytes) @ 0x000002191b23a0c0 [0x000002191b23a000+0x00000000000000c0]
j  javafx.scene.web.WebEngine$LoadWorker.updateState(Ljavafx/concurrent/Worker$State;)V+8 javafx.web@25
j  javafx.scene.web.WebEngine$LoadWorker.dispatchLoadEvent(JILjava/lang/String;Ljava/lang/String;DI)V+270 javafx.web@25
j  javafx.scene.web.WebEngine$PageLoadListener.dispatchLoadEvent(JILjava/lang/String;Ljava/lang/String;DI)V+32 javafx.web@25
j  com.sun.webkit.WebPage.fireLoadEvent(JILjava/lang/String;Ljava/lang/String;DI)V+53 javafx.web@25
j  com.sun.webkit.WebPage.fwkFireLoadEvent(JILjava/lang/String;Ljava/lang/String;DI)V+32 javafx.web@25
v  ~StubRoutines::call_stub 0x000002191a8512df
j  com.sun.webkit.MainThread.twkScheduleDispatchFunctions()V+0 javafx.web@25
j  com.sun.webkit.MainThread.lambda$fwkScheduleDispatchFunctions$0()V+0 javafx.web@25
j  com.sun.webkit.MainThread$$Lambda+0x0000000009f55400.run()V+0 javafx.web@25
j  com.sun.javafx.application.PlatformImpl.lambda$runLater$0(Ljava/lang/Runnable;)V+1 javafx.graphics@25
j  com.sun.javafx.application.PlatformImpl$$Lambda+0x000000000955d800.run()V+4 javafx.graphics@25
j  com.sun.glass.ui.InvokeLaterDispatcher$Future.run()V+4 javafx.graphics@25
v  ~StubRoutines::call_stub 0x000002191a8512df
j  com.sun.glass.ui.win.WinApplication._runLoop(Ljava/lang/Runnable;)V+0 javafx.graphics@25
j  com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(ILjava/lang/Runnable;)V+8 javafx.graphics@25
j  com.sun.glass.ui.win.WinApplication$$Lambda+0x000000000954c000.run()V+12 javafx.graphics@25
j  java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@25
j  java.lang.Thread.run()V+19 java.base@25
v  ~StubRoutines::call_stub 0x000002191a8512df

siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000

@koppor
Copy link
Member Author

koppor commented Oct 10, 2025

image

@koppor koppor changed the title [WIP] Enable Java EA builds [WIP] Enable Java EA builds and prepare JDK 26 Oct 10, 2025
@koppor
Copy link
Member Author

koppor commented Oct 10, 2025

The patch openjdk/jfx#1232 to JavaFX should enable publishing jmods for jdk.jsobject.

@koppor
Copy link
Member Author

koppor commented Oct 10, 2025

Future work (source: internal discussions)

  • declare https://download2.gluonhq.com/ as repository
  • tell gradle through transformations to extract a ZIP
  • instruct patch rules of javafx to use the jmod instead of zip

Copy link
Contributor

The build of this PR is available at https://builds.jabref.org/pull/13937/merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev: binaries Binary builds should be uploaded to builds.jabref.org status: depends-on-external A bug or issue that depends on an update of an external library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants