Skip to content

Conversation

koppor
Copy link
Member

@koppor koppor commented Sep 29, 2025

Twin to #13937

I removed --bind-services - maybe, it works.

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.

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

without bind service I think we will get runtime issue sfrom service loading

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

without bind service I think we will get runtime issue sfrom service loading

If we need this, no more Temurin 😅

@Siedlerchr
Copy link
Member

Siedlerchr commented Sep 29, 2025

     --jlink-options --bind-services
     
     https://docs.oracle.com/en/java/javase/25/jpackage/packaging-overview.html#GUID-C0AAEB7D-1FAB-4E20-B52C-E2401AC2BABE 
       In JDK 25 and later, jpackage no longer includes service bindings in the runtime image that it creates. Prior to JDK 25, jpackage would include them. As a result, the generated runtime images produced by jpackage in JDK 25 and later might not include the same set of modules as it did in prior JDK releases.

To include the same set of modules in the generated runtime image as in previous JDK releases, use the --jlink-options option and pass it the --bind-services jlink option in addition to the default jlink options that jpackage uses: 

This reverts commit 83800e1.
Copy link

trag-bot bot commented Sep 29, 2025

@trag-bot didn't find any issues in the code! ✅✨

@koppor
Copy link
Member Author

koppor commented Sep 29, 2025

We use

--add-modules jdk.incubator.vector

It is too much effort to include this in the build. Sorry dear Eclipse maintainers.

@Siedlerchr
Copy link
Member

Siedlerchr commented Sep 29, 2025


[21:43:09.828] Benutzerdefinierte Packageressource [DMG-Hintergrund] wird verwendet (aus JabRef-background.tiff geladen).
[21:43:09.830] Benutzerdefinierte Packageressource [Symbol "Datenträger"] wird verwendet (aus Datei /Users/christophs/workspace/jabref/jabgui/src/main/resources/icons/jabref.icns geladen).
[21:43:09.832] DMG-Setup wird vorbereitet: /var/folders/fk/[21:42:48.113] Warnung: Keine JDK-Module gefunden
ymndv_ds5h1dv11fbh61v4g40000gn/T/jdk.jpackage17323141260054675266/config/JabRef-dmg-setup.scpt.
java.nio.file.NoSuchFileException: jabref.icns
[21:43:09.833] Benutzerdefinierte Packageressource [DMG-Setupskript] wird verwendet (aus JabRef-dmg-setup.scpt geladen).
[21:43:09.835] Benutzerdefinierte Packageressource [Info.plist von Java Runtime] wird verwendet (aus Runtime-Info.plist geladen).
[21:43:09.836] Benutzerdefinierte Packageressource [icon] wird verwendet (aus Datei /Users/christophs/workspace/jabref/jabgui/src/main/resources/icons/jabref.icns geladen).
[21:43:09.860] 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

@jerboaa
Copy link

jerboaa commented Sep 30, 2025

One alternative for you is to get the packaged modules from the API before doing your CI build and then proceed with a JMOD-full link (it'll do it if the jmods folder exists). For example with:

$ ls jdk-25+36
bin  conf  include  legal  lib  NOTICE  release
$ ls jmods
ls: cannot access 'jmods/': No such file or directory
$ mkdir jmods && cd jmods && curl -sL https://api.adoptium.net/v3/binary/latest/25/ga/linux/x64/jmods/hotspot/normal/eclipse | gunzip | tar -x --strip-components=1 && cd -
$ ls jmods/
java.base.jmod            java.prefs.jmod           java.xml.crypto.jmod      jdk.graal.compiler.jmod             jdk.internal.vm.ci.jmod  jdk.jpackage.jmod          jdk.net.jmod
java.compiler.jmod        java.rmi.jmod             java.xml.jmod             jdk.graal.compiler.management.jmod  jdk.jartool.jmod         jdk.jshell.jmod            jdk.nio.mapmode.jmod
java.datatransfer.jmod    java.scripting.jmod       jdk.accessibility.jmod    jdk.hotspot.agent.jmod              jdk.javadoc.jmod         jdk.jsobject.jmod          jdk.sctp.jmod
java.desktop.jmod         java.security.jgss.jmod   jdk.attach.jmod           jdk.httpserver.jmod                 jdk.jcmd.jmod            jdk.jstatd.jmod            jdk.security.auth.jmod
java.instrument.jmod      java.security.sasl.jmod   jdk.charsets.jmod         jdk.incubator.vector.jmod           jdk.jconsole.jmod        jdk.localedata.jmod        jdk.security.jgss.jmod
java.logging.jmod         java.se.jmod              jdk.compiler.jmod         jdk.internal.ed.jmod                jdk.jdeps.jmod           jdk.management.agent.jmod  jdk.unsupported.desktop.jmod
java.management.jmod      java.smartcardio.jmod     jdk.crypto.cryptoki.jmod  jdk.internal.jvmstat.jmod           jdk.jdi.jmod             jdk.management.jfr.jmod    jdk.unsupported.jmod
java.management.rmi.jmod  java.sql.jmod             jdk.crypto.ec.jmod        jdk.internal.le.jmod                jdk.jdwp.agent.jmod      jdk.management.jmod        jdk.xml.dom.jmod
java.naming.jmod          java.sql.rowset.jmod      jdk.dynalink.jmod         jdk.internal.md.jmod                jdk.jfr.jmod             jdk.naming.dns.jmod        jdk.zipfs.jmod
java.net.http.jmod        java.transaction.xa.jmod  jdk.editpad.jmod          jdk.internal.opt.jmod               jdk.jlink.jmod           jdk.naming.rmi.jmod

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants