On Thu, 25 Sep 2025 00:10:06 GMT, Alexander Matveev <almat...@openjdk.org> wrote:
>> Introduce `jdk.jpackage.internal.SystemEnvironment` interface to describe >> system tools needed for building specific package bundles with three >> immediate subinterfaces: `WinSystemEnvironment`, `LinuxSystemEnvironment`, >> and `MacDmgSystemEnvironment`. >> >> `LinuxSystemEnvironment` has two subinterfaces: `LinuxDebSystemEnvironment` >> and `LinuxRpmSystemEnvironment`. >> >> There is no `MacSystemEnvironment` interface as pkg and dmg bundlers are >> unrelated, unlike rpm and deb bundlers, which share a fair amount of code. >> >> There is no `MacPkgSystemEnvironment` interface because the pkg bundler >> doesn't validate tools. >> >> Instances of these interfaces are created as member fields of the >> corresponding bundler classes, i.e., bundling system tools are validated >> only once when a specific bundler is instantiated. >> >> Move the bundling code away from *Bundler classes into *Packager classes and >> completely isolate it from the "params". This is a follow-up for the effort >> to isolate the "params" in >> [JDK-8333664](https://bugs.openjdk.org/browse/JDK-8333664). > > src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmSystemEnvironmentMixin.java > line 45: > >> 43: >> 44: final var errors = Stream.of( >> 45: Internal.createRpmbuildToolValidator(), > > `createRpmbuildToolValidator` -> `createRpmBuildToolValidator` The function creates a validator for the "rpmbuild" command. The camel case for "rpmbuild" string is "Rpmbuild", so I think the method name is correct. > src/jdk.jpackage/share/classes/jdk/jpackage/internal/ToolValidator.java line > 136: > >> 134: if (versionParser != null && minimalVersion != null) { >> 135: version[0] = versionParser.apply(lines); >> 136: if (version[0] != null && >> minimalVersion.compareTo(version[0]) <= 0) { > > Do you know why `<` was changed to `<=`? This is a bugfix: the minimal version for a tool was always meant to be inclusive. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/27377#discussion_r2379615896 PR Review Comment: https://git.openjdk.org/jdk/pull/27377#discussion_r2379624566