RFR: 8370100: Redundant .png files in Linux app-image cause unnecessary bloat [v2]

Alexey Semenyuk asemenyuk at openjdk.org
Sat Oct 25 14:51:01 UTC 2025


On Sat, 25 Oct 2025 04:12:28 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:

>> Alexey Semenyuk has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains eight new commits since the last revision:
>> 
>>  - DefaultLauncherIcon: blessed-modifier-order.sh  fix
>>  - FileAssociations: revert redundant change
>>  - Fix fa icon verification on Linux
>>  - LinuxPackagingPipeline, WinPackagingPipeline: remove unused normalizeShortcuts() methods
>>  - IconTest: revamp
>>  - LinuxHelper: revamp
>>  - Don't add the default launcher icon to app image on Linux
>>  - Make Launcher interface provide complete information about the source of the launcher icon; Before this change, the function getting a resource for an additional launcher icon took both the additional launcher and the main launcher as input. Now its result doesn't depend on the main launcher.
>
> src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackagingPipeline.java line 62:
> 
>> 60:         pkg.ifPresent(_ -> {
>> 61:             builder.task(LinuxAppImageTaskID.LAUNCHER_ICONS).noaction().add();
>> 62:         });
> 
> Can you explain what this code do? We already have `LAUNCHER_ICONS` task at line 55. Why we need a second one and without action?

This is the same task but with a disabled action. Task graph doesn't allow multiple tasks with the same ID.

By default, the `LAUNCHER_ICONS` task copies launcher icon files to the app image. However, when bundling a native package, this action should not be executed because the `DesktopIntegration` class adds launcher icons to the package.

Before this change, jpackage copied launcher icon files twice when building a native package: in `LAUNCHER_ICONS` task and in `DesktopIntegration` class.

Function name `add()` is confusing. Should be `apply()` or `commit()`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27928#discussion_r2462876011


More information about the core-libs-dev mailing list