[jdk19] RFR: 8289030: [macos] app image signature invalid when creating DMG or PKG [v2]

Alexander Matveev almatvee at openjdk.org
Thu Jul 7 19:33:55 UTC 2022


On Thu, 7 Jul 2022 17:07:51 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:

>> Alexander Matveev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'upstream/master' into JDK-8289030
>>  - 8289030: [macos] app image signature invalid when creating DMG or PKG [v2]
>>  - 8289030: [macos] app image signature invalid when creating DMG or PKG
>
> src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacBaseInstallerBundler.java line 171:
> 
>> 169:            Files.deleteIfExists(AppImageFile.getPathInAppImage(appDir));
>> 170:         }
>> 171: 
> 
> I think there is no need to modify AbstractAppImageBuilder.java, and AppImageBundler.java.
> It is sufficient to modify the condition controlling the creation of `.package` file:
> 
> if (predefinedImage == null || (!StandardBundlerParam.isRuntimeInstaller(params) && !AppImageFile.load(predefinedImage).isSigned())) {
>     new PackageFile(APP_NAME.fetchFrom(params)).save(
>         ApplicationLayout.macAppImage().resolveAt(appDir));
>     Files.deleteIfExists(AppImageFile.getPathInAppImage(appDir));
> }
> 
> Besides `.package` file logically doesn't belong to app image, it belongs to the installed application, so it must not be referenced from the classes creating app images.

We need to add `.package` file during app image creation, since we need to sign it. With your proposed change we will add `.package` file to already signed app image.

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

PR: https://git.openjdk.org/jdk19/pull/89


More information about the core-libs-dev mailing list