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

Reply via email to