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.

@koppor koppor removed the dev: binaries Binary builds should be uploaded to builds.jabref.org label Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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