On Mon, 3 May 2021 19:26:19 GMT, Alexander Matveev <almat...@openjdk.org> wrote:
>> jpackage should specify architecture for produced PKG files via >> hostArchitectures="x86_x64 or arm64". aarch64 installer will be installable >> on x64 without specifying hostArchitectures which is not correct and if >> install on arm Mac it will request Rosetta 2. With proposed fix by setting >> hostArchitectures="x86_x64" if installer contains x64 binaries, it will be >> installable on x64 Mac and will require Rosetta 2 on arm Mac. >> hostArchitectures will be set to arm64 if installer contain aarch64 binaries >> and will gave error when run on x64 Mac and will be installable on arm Mac >> without triggering installation of Rosetta 2. > > Alexander Matveev has updated the pull request incrementally with one > additional commit since the last revision: > > 8266179: [macos] jpackage should specify architecture for produced pkg > files [v3] Changes requested by asemenyuk (Reviewer). test/jdk/tools/jpackage/macosx/HostArchPkgTest.java line 93: > 91: .forTypes(PackageType.MAC_PKG) > 92: .addInstallVerifier(HostArchPkgTest::verifyHostArch) > 93: .run(); The test is applicable only to the scenario when .pkg installer is unpacked and not when it is installed. So `PackageTest.run()` is not quite a good fit for this execution scenario as it depends on the value of `jpackage.test.action` system property (its default value is indeed to create and unpack installer, but can be overriden). The better option would be to use `PackageTest.run()` with explicit list of actions the test should perform. Suggested fix: new PackageTest() .forTypes(PackageType.MAC_PKG) .configureHelloApp() .addInstallVerifier(HostArchPkgTest::verifyHostArch) .run(PackageTest.Action.CREATE_AND_UNPACK); ------------- PR: https://git.openjdk.java.net/jdk/pull/3807