···39+ return Path.of("MAVEN_PATH_HERE")
40 }
41 }
0000000000042--- a/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
43+++ b/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
44@@ -25,11 +25,7 @@
···56 jdkExtracted.resolve("Contents").resolve("Home")
57--- a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
58+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
59-@@ -43,12 +43,12 @@
60 /**
61- * If `true` a separate *-no-jbr.tar.gz artifact without runtime will be produced.
62 */
63-- var buildTarGzWithoutBundledRuntime = false
64-+ var buildTarGzWithoutBundledRuntime = true
6566 /**
67- * If `true`, the only *-no-jbr.tar.gz will be produced, no other binaries for Linux will be built.
68- */
69-- var buildOnlyBareTarGz = false
70-+ var buildOnlyBareTarGz = true
000000000007172- /**
73- * Set both properties if a .snap package should be produced.
00074--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
75+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
76@@ -11,6 +11,7 @@
···39+ return Path.of("MAVEN_PATH_HERE")
40 }
41 }
42+--- a/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/BuildDependenciesDownloader.kt
43++++ b/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/BuildDependenciesDownloader.kt
44+@@ -70,7 +70,7 @@
45+ version: String,
46+ classifier: String?,
47+ packaging: String): URI {
48+- val base = mavenRepository.trim('/')
49++ val base = mavenRepository.trimEnd('/')
50+ val groupStr = groupId.replace('.', '/')
51+ val classifierStr = if (classifier != null) "-${classifier}" else ""
52+ return URI.create("${base}/${groupStr}/${artifactId}/${version}/${artifactId}-${version}${classifierStr}.${packaging}")
53--- a/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
54+++ b/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
55@@ -25,11 +25,7 @@
···67 jdkExtracted.resolve("Contents").resolve("Home")
68--- a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
69+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
70+@@ -46,7 +46,7 @@
71 /**
72+ * If `true`, a separate *[org.jetbrains.intellij.build.impl.LinuxDistributionBuilder.NO_RUNTIME_SUFFIX].tar.gz artifact without a runtime will be produced.
73 */
74+- var buildArtifactWithoutRuntime = false
75++ var buildArtifactWithoutRuntime = true
7677 /**
78+ * Set both properties if a .snap package should be produced.
79+--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.kt
80++++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.kt
81+@@ -45,7 +45,7 @@
82+ withContext(Dispatchers.IO) {
83+ val distBinDir = targetPath.resolve("bin")
84+ val sourceBinDir = context.paths.communityHomeDir.resolve("bin/linux")
85+- copyFileToDir(NativeBinaryDownloader.downloadRestarter(context = context, os = OsFamily.LINUX, arch = arch), distBinDir)
86++ copyFileToDir(sourceBinDir.resolve("${arch.dirName}/restarter"), distBinDir)
87+ copyFileToDir(sourceBinDir.resolve("${arch.dirName}/fsnotifier"), distBinDir)
88+ copyFileToDir(sourceBinDir.resolve("${arch.dirName}/libdbm.so"), distBinDir)
89+ generateBuildTxt(context, targetPath)
90+@@ -85,6 +85,8 @@
91+ }
92+ }
9394++ return@executeStep
95++
96+ val runtimeDir = context.bundledRuntime.extract(os = OsFamily.LINUX, arch = arch)
97+ updateExecutablePermissions(runtimeDir, executableFileMatchers)
98+ val tarGzPath = buildTarGz(arch = arch, runtimeDir = runtimeDir, unixDistPath = osAndArchSpecificDistPath, suffix = suffix(arch))
99--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
100+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
101@@ -11,6 +11,7 @@
···17## How to update stuff:
18 - Run ./bin/update_bin.py
19 - This will update binary IDEs and plugins, and automatically commit them
20- - Source builds need a bit more effort, as they aren't automated at the moment:
21 - Find the build of the stable release you want to target (usually different for pycharm and idea, should have three components)
22- - I find this at https://jetbrains.com/updates/updates.xml (search for `fullNumber`)
23 - Update the `buildVer` field in source/default.nix
24- - Empty the `ideaHash`, `androidHash` and `jpsHash` (only `ideaHash` changes on a regular basis) fields and try to build to get the new hashes
25- - Run `nix build .#jetbrains.(idea/pycharm)-community-source.src`, then `./source/build_maven.py source/idea_maven_artefacts.json result/`
26 - Update `source/brokenPlugins.json` (from https://plugins.jetbrains.com/files/brokenPlugins.json)
27 - Do a test build
28 - If it succeeds, make a PR/merge
···17## How to update stuff:
18 - Run ./bin/update_bin.py
19 - This will update binary IDEs and plugins, and automatically commit them
20+ - Source builds need a bit more effort, as they **aren't automated at the moment**:
21 - Find the build of the stable release you want to target (usually different for pycharm and idea, should have three components)
22+ - I find this at https://jetbrains.com/updates/updates.xml (search for `product name="`, then `fullNumber`)
23 - Update the `buildVer` field in source/default.nix
24+ - Empty the `ideaHash`, `androidHash`, `jpsHash` and `restarterHash` (only `ideaHash` and `restarterHash` changes on a regular basis) fields and try to build to get the new hashes
25+ - Run `nix build .#jetbrains.(idea/pycharm)-community-src.src.src`, then `./source/build_maven.py source/idea_maven_artefacts.json result/`
26 - Update `source/brokenPlugins.json` (from https://plugins.jetbrains.com/files/brokenPlugins.json)
27 - Do a test build
28 - If it succeeds, make a PR/merge