diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt index c0ecc2e18611..46023c8991de 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt @@ -380,6 +380,11 @@ data class BuildOptions( */ var useLocalLauncher: Boolean = false + /** + * When `true`, cross-platform distribution will be packed using zip64 in AlwaysWithCompatibility mode + */ + var useZip64ForCrossPlatformDistribution: Boolean = getBooleanProperty("intellij.build.cross.platform.dist.zip64", false) + /** * Pass `true` to this system property to produce .snap packages. * A build configuration should have "docker.version >= 17" in requirements. diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt index 07091b4d52a2..69fac078ca3b 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt @@ -901,7 +901,14 @@ private fun crossPlatformZip( writeNewFile(targetFile) { outFileChannel -> NoDuplicateZipArchiveOutputStream(outFileChannel, context.options.compressZipFiles).use { out -> - out.setUseZip64(Zip64Mode.Never) + out.setUseZip64( + if (context.options.useZip64ForCrossPlatformDistribution) { + Zip64Mode.AlwaysWithCompatibility + } + else { + Zip64Mode.Never + } + ) // for the `bin/` directory layout, see `PathManager.getBinDirectories(Path)`