Bug in jpackage early access regarding icons with the deb installer type

Sargun Vohra sargun.vohra at gmail.com
Tue May 14 07:00:08 UTC 2019


I've found a bug in the jpackage tool early access which I obtained from
https://jdk.java.net/jpackage/. The issue is that the icon path is
incorrect in the generated desktop entry file. If there's a better place to
report this, please let me know. Steps to reproduce the bug in Ubuntu are
as follows:

I have a project in which I create an app image with the command:

jpackage create-app-image --output build/jpackage --name modsman-gui
--module-path build/jlinkbase/jlinkjars --module
modsman.gui/modsman.gui.MainKt --runtime-image build/image --icon
icons/linux.png

This creates an app image and puts the icon inside the *resources*
directory.

I then create a deb installer for that package with the command:

jpackage create-installer --installer-type deb --output build/jpackage
--name modsman-gui --app-image build/jpackage/modsman-gui
--app-version 0.0.0 --linux-bundle-name modsman-gui

When I install the resulting deb package, there's a desktop entry installed
called *modsman-gui.desktop*. That file has the following content:

[Desktop Entry]  Name=modsman-gui  Comment=modsman-gui
Exec=/opt/modsman-gui/modsman-gui
Icon=/opt/modsman-gui/modsman-gui.png  Terminal=false
Type=Application  Categories=Unknown

That Icon property points to a path containing the default gray application
icon, *not* the icon I specified when creating the app image. In order to
set the icon properly, the Icon property must be set to:

Icon=/opt/modsman-gui/resources/modsman-gui.png

This is because the create-app-image command put the icon inside the
*resources* subdirectory. So, this is either a bug in create-installer
pointing the desktop entry to the wrong icon, or a bug in create-app-image
placing the icon in the wrong place.

You can reproduce it yourself by cloning my git repo from
https://gitlab.com/sargunv-mc-mods/modsman-new and running ./gradlew
:modsman-gui:jpackage. Inspect the deb package created in
*modsman-gui/build/jpackage*, and you'll find the issue described above.

Reproduced on jpackage version 13-internal downloaded on May 13.


More information about the core-libs-dev mailing list