dependabot[bot] opened a new pull request, #729:
URL: https://github.com/apache/karaf-decanter/pull/729

   Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.12.0 
to 7.6.0.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/oshi/oshi/releases";>com.github.oshi:oshi-core's 
releases</a>.</em></p>
   <blockquote>
   <h2>Release 7.6.0</h2>
   <h5>Maven Central Publication Change</h5>
   <p>The <code>oshi-dist</code> zip is no longer published to Maven Central; 
download it from the <a href="https://github.com/oshi/oshi/releases";>GitHub 
release</a> instead.</p>
   <h5>New Features</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3652";>#3652</a>: 
<code>oshi-metrics</code> reports the OpenTelemetry <code>reserved</code> state 
for <code>system.filesystem.usage</code> and 
<code>system.filesystem.utilization</code>, alongside the existing 
<code>used</code> and <code>free</code>. The three states partition the 
filesystem, so the <code>usage</code> gauges sum to 
<code>system.filesystem.limit</code> and the <code>utilization</code> gauges 
sum to 1.0 - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3660";>#3660</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3678";>#3678</a>: 
<code>Display.getDevicePort()</code> reports the port a display is attached to, 
and on systems with X RandR, <code>Display.getOutputName()</code> gives the 
name <code>xrandr --output</code> accepts for it - <a 
href="https://github.com/ayonization";><code>@​ayonization</code></a>, <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h5>Behavior Changes</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: 
<code>OSDesktopWindow.getLocAndSize()</code> returns a copy of the window's 
<code>Rectangle</code> and the constructor copies the one it is given, so the 
class honors the immutability its documentation promises. 
<code>ApplicationInfo.getAdditionalInfo()</code> returns an unmodifiable map. 
Code that wrote through either return value silently mutated OSHI's own state; 
it now has no effect, or throws <code>UnsupportedOperationException</code> for 
the map - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: 
<code>UsbDevice.compareTo()</code> breaks ties on the unique device ID, vendor 
ID, product ID and serial number after comparing names, and 
<code>AbstractUsbDevice</code> implements <code>equals()</code> and 
<code>hashCode()</code> over the same fields. Two distinct devices sharing a 
name previously compared equal, so a <code>TreeSet</code> or 
<code>SortedSet</code> of them kept only one. The ordering is now a default 
method on <code>UsbDevice</code>, so every implementation shares it - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h5>Bug Fixes and Improvements</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3651";>#3651</a>: 
<code>OSFileStore</code> now guarantees <code>0 &lt;= getUsableSpace() &lt;= 
getFreeSpace() &lt;= getTotalSpace()</code> on every platform. The three values 
are read by separate queries, so on a ZFS dataset or a swap-backed 
<code>tmpfs</code> they could previously contradict each other; they are now 
clamped downward to restore the ordering - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3657";>#3657</a>: Fix 
the <code>TcpState</code> for the FFM implementation of 
<code>InternetProtocolStats.getConnections()</code> on macOS and set the 
process cap from the kernel - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3661";>#3661</a>: 
Setting <code>oshi.os.windows.hkeyperfdata</code> to <code>false</code> now 
also skips the registry when fetching thread counters, matching its documented 
behavior and the existing handling for processes - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3662";>#3662</a>: 
Reading the processor description from the registry no longer throws when a 
value is missing. <code>CentralProcessor.getFeatureFlags()</code> on Windows 
now reports every processor feature <code>IsProcessorFeaturePresent()</code> 
accepts, matching the <code>PF_</code> defines in <code>winnt.h</code> - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3665";>#3665</a>: 
<code>NetworkParams.getRoutes()</code> reads the routing table from the kernel 
through a <code>NET_RT_DUMP</code> sysctl on macOS, FreeBSD, DragonFly BSD and 
OpenBSD, rather than by running <code>netstat</code> twice - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3670";>#3670</a>: 
<code>NetworkParams.getHostName()</code> on Linux reads the kernel host name 
from <code>/proc/sys/kernel/hostname</code> in every backend, fixing the 
native-free implementation, which truncated a fully qualified name at the first 
dot and reported <code>localhost</code> when the name did not resolve - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3671";>#3671</a>: 
<code>NetworkParams.getHostName()</code> and <code>getDomainName()</code> 
report the empty-string sentinel when the local host name does not resolve, 
rather than the loopback address's <code>localhost</code>. NetBSD is the most 
affected platform, having no native host name query of its own - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3672";>#3672</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3674";>#3674</a>: 
<code>CentralProcessor</code> frequencies and 
<code>PhysicalProcessor.getEfficiency()</code> on Apple Silicon are correct 
regardless of call order and on the M4 and M5 generations. Frequencies 
previously fell back to a 2.4 GHz placeholder unless 
<code>getProcessorIdentifier()</code> happened to be called first, were 
reported a thousand times too low on the M4 and later, and a chip with more or 
fewer than two kinds of core was misclassified - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3675";>#3675</a>: 
<code>CentralProcessor.getCurrentFreq()</code> on Apple Silicon can report the 
frequency the hardware actually ran at, rather than a nominal maximum that 
never changes. Set <code>oshi.os.mac.cpu.frequency.ioreport</code> to 
<code>true</code>; it is opt-in because it holds a subscription to a private 
framework for the lifetime of the process - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3680";>#3680</a>: 
<code>oshi-metrics</code> reads a disk or network interface once per memoizer 
expiration window rather than once per meter, so a scrape makes one query where 
it previously made five or seven, and the meters of one device report the same 
reading. A rate computed across two of them, such as errors per packet, is now 
comparable - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3681";>#3681</a>: 
<code>GpuStats.getGpuUtilization()</code> on Linux reads NVIDIA GPU utilization 
from NVML. It previously read only the amdgpu/i915/xe sysfs paths, none of 
which the NVIDIA driver exposes, so an NVIDIA card always returned the -1 
sentinel - <a 
href="https://github.com/Krillsson";><code>@​Krillsson</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3686";>#3686</a>: 
<code>GpuStats.getGpuUtilization()</code> on Windows reads NVIDIA utilization 
from NVML and AMD utilization from ADL, matching the source order of every 
other metric on the class. It previously ran only LibreHardwareMonitor and a 
PDH engine-tick delta, which needs two samples, so the first call returned the 
-1 sentinel - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3687";>#3687</a>: 
<code>GpuStats.getSharedMemoryUsed()</code> on Linux reports the amdgpu GTT 
memory in use rather than always returning -1, and 
<code>GraphicsCard.getVRam()</code> on an amdgpu card reports the driver's own 
figure rather than the memory BAR size parsed from <code>lspci</code> or 
<code>lshw</code>. Several <code>GpuStats</code> metrics on Linux also now 
return the -1 sentinel when the sysfs file behind them is absent; they 
previously reported 0, so a card whose hwmon directory omits 
<code>power1_average</code> read as drawing 0.0 W - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3698";>#3698</a>: 
<code>OSProcess.getCurrentWorkingDirectory()</code> on macOS returns the 
directory rather than an empty string in the FFM implementation, and 
<code>NetworkParams.getDomainName()</code> on macOS and the BSDs returns the 
canonical name rather than an empty string in both implementations - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: An 
AIX process or thread that exits between enumeration and the <code>/proc</code> 
read is now reported as invalid rather than as a live process owned by root - 
<a href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: A 
failure of <code>kstat_open()</code> on Solaris throws rather than releasing no 
lock and passing a null control structure to the kernel. The chain lock is 
static, so a failed open previously blocked every later kstat query on any 
thread - <a href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <p><a href="https://github.com/oshi/oshi/blob/master/CHANGELOG.md";>Full 
change log</a></p>
   <h2>Release 7.5.0</h2>
   <h5>New Features</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3614";>#3614</a> - <a 
href="https://redirect.github.com/oshi/oshi/pull/3636";>#3636</a>: Adopt <a 
href="https://jspecify.dev/";>JSpecify</a> nullability annotations project-wide 
and enforce them in continuous integration with <a 
href="https://github.com/uber/NullAway";>NullAway</a>, so every type in a 
signature is non-null unless it is annotated <code>@Nullable</code>. A method 
not annotated <code>@Nullable</code> is now a checked guarantee rather than an 
aspiration, and a null check against one is dead code you can delete. The 
public API packages and the <code>oshi.util</code> tree carry the marking in 
their <code>package-info.java</code>, where every consumer sees it, including 
on a Java 8 or classpath build; the implementation packages are marked on their 
module descriptors; the native mapping packages under <code>oshi.jna</code> and 
<code>oshi.ffm.platform</code> opt out, because nullability there is the 
operating system's to
  state rather than OSHI's. The <code>org.jspecify:jspecify</code> dependency 
is optional and compile-time only, so it does not reach your runtime classpath. 
See the <a 
href="https://github.com/oshi/oshi/blob/HEAD/FAQ.md#nullability-nullmarked-nullable";>FAQ</a>
 for what this does and does not promise - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3615";>#3615</a>: Add 
<code>ParseUtil.getStringValueOrEmpty</code>, which normalizes a nullable 
string to <code>&quot;&quot;</code>, alongside the existing 
<code>getStringValueOrUnknown</code> - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3641";>#3641</a>: Add 
<code>HardwareAbstractionLayer.getVirtualization()</code>, which identifies the 
hypervisor, container runtime or cloud platform hosting the system, promoting 
the long-standing <code>DetectVM</code> demo into the library. It returns an 
<code>Optional&lt;String&gt;</code> naming the platform, or an empty 
<code>Optional</code> when no signature matched - which means undetermined, not 
confirmed bare metal. Detection reads the processor's CPUID vendor string, the 
computer system's manufacturer and model, and network interface MAC address 
OUIs, in that order. The signature tables ship as the 
<code>oshi.vm.properties</code> and <code>oshi.vmmacaddr.properties</code> 
resources; placing a file of either name earlier on the classpath replaces that 
table, so you can teach OSHI about a platform it does not know - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3646";>#3646</a>, <a 
href="https://redirect.github.com/oshi/oshi/pull/3647";>#3647</a>: Add 
<code>NetworkParams.getRoutes()</code>, which returns the operating system's 
routing table as a list of <code>IPRoute</code> objects covering both address 
families - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h5>Behavior Changes</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3646";>#3646</a>: 
<code>NetworkParams.getIpv6DefaultGateway()</code> on OpenBSD returns the IPv6 
gateway. It previously omitted the <code>-inet6</code> flag and returned the 
IPv4 gateway. <code>NetworkParams</code> default gateways on AIX return an 
empty string when no default route is configured, matching the documented 
contract. They previously returned <code>Constants.UNKNOWN</code>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3614";>#3614</a> - <a 
href="https://redirect.github.com/oshi/oshi/pull/3636";>#3636</a>: Stating each 
nullability contract explicitly during the JSpecify sweep surfaced 
implementations that did not honor it. Values that were documented as 
unreadable but returned <code>null</code> now return the sentinel the rest of 
the API uses. The following user-facing behavior changed:</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/oshi/oshi/blob/master/CHANGELOG.md";>com.github.oshi:oshi-core's
 changelog</a>.</em></p>
   <blockquote>
   <h1>7.6.0 (2026-08-23)</h1>
   <p>The <code>oshi-dist</code> zip is no longer published to Maven Central; 
download it from the <a href="https://github.com/oshi/oshi/releases";>GitHub 
release</a> instead.</p>
   <h5>New Features</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3652";>#3652</a>: 
<code>oshi-metrics</code> reports the OpenTelemetry <code>reserved</code> state 
for <code>system.filesystem.usage</code> and 
<code>system.filesystem.utilization</code>, alongside the existing 
<code>used</code> and <code>free</code>. The three states partition the 
filesystem, so the <code>usage</code> gauges sum to 
<code>system.filesystem.limit</code> and the <code>utilization</code> gauges 
sum to 1.0 - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3660";>#3660</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3678";>#3678</a>: 
<code>Display.getDevicePort()</code> reports the port a display is attached to, 
and on systems with X RandR, <code>Display.getOutputName()</code> gives the 
name <code>xrandr --output</code> accepts for it - <a 
href="https://github.com/ayonization";><code>@​ayonization</code></a>, <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h5>Behavior Changes</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: 
<code>OSDesktopWindow.getLocAndSize()</code> returns a copy of the window's 
<code>Rectangle</code> and the constructor copies the one it is given, so the 
class honors the immutability its documentation promises. 
<code>ApplicationInfo.getAdditionalInfo()</code> returns an unmodifiable map. 
Code that wrote through either return value silently mutated OSHI's own state; 
it now has no effect, or throws <code>UnsupportedOperationException</code> for 
the map - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: 
<code>UsbDevice.compareTo()</code> breaks ties on the unique device ID, vendor 
ID, product ID and serial number after comparing names, and 
<code>AbstractUsbDevice</code> implements <code>equals()</code> and 
<code>hashCode()</code> over the same fields. Two distinct devices sharing a 
name previously compared equal, so a <code>TreeSet</code> or 
<code>SortedSet</code> of them kept only one. The ordering is now a default 
method on <code>UsbDevice</code>, so every implementation shares it - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h5>Bug Fixes and Improvements</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3651";>#3651</a>: 
<code>OSFileStore</code> now guarantees <code>0 &lt;= getUsableSpace() &lt;= 
getFreeSpace() &lt;= getTotalSpace()</code> on every platform. The three values 
are read by separate queries, so on a ZFS dataset or a swap-backed 
<code>tmpfs</code> they could previously contradict each other; they are now 
clamped downward to restore the ordering - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3657";>#3657</a>: Fix 
the <code>TcpState</code> for the FFM implementation of 
<code>InternetProtocolStats.getConnections()</code> on macOS and set the 
process cap from the kernel - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3661";>#3661</a>: 
Setting <code>oshi.os.windows.hkeyperfdata</code> to <code>false</code> now 
also skips the registry when fetching thread counters, matching its documented 
behavior and the existing handling for processes - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3662";>#3662</a>: 
Reading the processor description from the registry no longer throws when a 
value is missing. <code>CentralProcessor.getFeatureFlags()</code> on Windows 
now reports every processor feature <code>IsProcessorFeaturePresent()</code> 
accepts, matching the <code>PF_</code> defines in <code>winnt.h</code> - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3665";>#3665</a>: 
<code>NetworkParams.getRoutes()</code> reads the routing table from the kernel 
through a <code>NET_RT_DUMP</code> sysctl on macOS, FreeBSD, DragonFly BSD and 
OpenBSD, rather than by running <code>netstat</code> twice - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3670";>#3670</a>: 
<code>NetworkParams.getHostName()</code> on Linux reads the kernel host name 
from <code>/proc/sys/kernel/hostname</code> in every backend, fixing the 
native-free implementation, which truncated a fully qualified name at the first 
dot and reported <code>localhost</code> when the name did not resolve - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3671";>#3671</a>: 
<code>NetworkParams.getHostName()</code> and <code>getDomainName()</code> 
report the empty-string sentinel when the local host name does not resolve, 
rather than the loopback address's <code>localhost</code>. NetBSD is the most 
affected platform, having no native host name query of its own - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3672";>#3672</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3674";>#3674</a>: 
<code>CentralProcessor</code> frequencies and 
<code>PhysicalProcessor.getEfficiency()</code> on Apple Silicon are correct 
regardless of call order and on the M4 and M5 generations. Frequencies 
previously fell back to a 2.4 GHz placeholder unless 
<code>getProcessorIdentifier()</code> happened to be called first, were 
reported a thousand times too low on the M4 and later, and a chip with more or 
fewer than two kinds of core was misclassified - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3675";>#3675</a>: 
<code>CentralProcessor.getCurrentFreq()</code> on Apple Silicon can report the 
frequency the hardware actually ran at, rather than a nominal maximum that 
never changes. Set <code>oshi.os.mac.cpu.frequency.ioreport</code> to 
<code>true</code>; it is opt-in because it holds a subscription to a private 
framework for the lifetime of the process - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3680";>#3680</a>: 
<code>oshi-metrics</code> reads a disk or network interface once per memoizer 
expiration window rather than once per meter, so a scrape makes one query where 
it previously made five or seven, and the meters of one device report the same 
reading. A rate computed across two of them, such as errors per packet, is now 
comparable - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3681";>#3681</a>: 
<code>GpuStats.getGpuUtilization()</code> on Linux reads NVIDIA GPU utilization 
from NVML. It previously read only the amdgpu/i915/xe sysfs paths, none of 
which the NVIDIA driver exposes, so an NVIDIA card always returned the -1 
sentinel - <a 
href="https://github.com/Krillsson";><code>@​Krillsson</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3686";>#3686</a>: 
<code>GpuStats.getGpuUtilization()</code> on Windows reads NVIDIA utilization 
from NVML and AMD utilization from ADL, matching the source order of every 
other metric on the class. It previously ran only LibreHardwareMonitor and a 
PDH engine-tick delta, which needs two samples, so the first call returned the 
-1 sentinel - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3687";>#3687</a>: 
<code>GpuStats.getSharedMemoryUsed()</code> on Linux reports the amdgpu GTT 
memory in use rather than always returning -1, and 
<code>GraphicsCard.getVRam()</code> on an amdgpu card reports the driver's own 
figure rather than the memory BAR size parsed from <code>lspci</code> or 
<code>lshw</code>. Several <code>GpuStats</code> metrics on Linux also now 
return the -1 sentinel when the sysfs file behind them is absent; they 
previously reported 0, so a card whose hwmon directory omits 
<code>power1_average</code> read as drawing 0.0 W - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3698";>#3698</a>: 
<code>OSProcess.getCurrentWorkingDirectory()</code> on macOS returns the 
directory rather than an empty string in the FFM implementation, and 
<code>NetworkParams.getDomainName()</code> on macOS and the BSDs returns the 
canonical name rather than an empty string in both implementations - <a 
href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: An 
AIX process or thread that exits between enumeration and the <code>/proc</code> 
read is now reported as invalid rather than as a live process owned by root - 
<a href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3705";>#3705</a>: A 
failure of <code>kstat_open()</code> on Solaris throws rather than releasing no 
lock and passing a null control structure to the kernel. The chain lock is 
static, so a failed open previously blocked every later kstat query on any 
thread - <a href="https://github.com/dbwiddis";><code>@​dbwiddis</code></a>.</li>
   </ul>
   <h1>7.5.0 (2026-08-16)</h1>
   <h5>New Features</h5>
   <ul>
   <li><a href="https://redirect.github.com/oshi/oshi/pull/3614";>#3614</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3615";>#3615</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3618";>#3618</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3619";>#3619</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3620";>#3620</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3621";>#3621</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3622";>#3622</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3623";>#3623</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3624";>#3624</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3625";>#3625</a>,
   <a href="https://redirect.github.com/oshi/oshi/pull/3626";>#3626</a>,</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/oshi/oshi/commit/430f530648d224685f612e58a395297f515c1be4";><code>430f530</code></a>
 [maven-release-plugin] prepare release oshi-parent-7.6.0</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/ae8b7bb230b1c0b71bbfd76d531b300aece12937";><code>ae8b7bb</code></a>
 7.6.0 Release</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/d7e05aa8f17b3f2d42dbb57bb6e86e590fbf8564";><code>d7e05aa</code></a>
 Report an absent SMC once instead of on every sensor query, and quiet the 
stu...</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/2382a05e018220d7a74ce52612b890cde98e2179";><code>2382a05</code></a>
 Fix what SpotBugs and Sonar found (<a 
href="https://redirect.github.com/oshi/oshi/issues/3705";>#3705</a>)</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/15347904d44bf4495f556aa1319072f16598bf09";><code>1534790</code></a>
 Update vmactions/freebsd-vm digest to d0518f9 (<a 
href="https://redirect.github.com/oshi/oshi/issues/3702";>#3702</a>)</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/161dbee301fdca11fa9402e4acbf37037511875a";><code>161dbee</code></a>
 Run AppVeyor on JDK 25, and correct what pins testRelease</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/a93b66ec9e0e49c733468ba61dbfad88bb91cdb8";><code>a93b66e</code></a>
 Bring the new audit jobs onto upload-artifact v7</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/8dde9a9903466b1de9f30771d6e8e17fc2151fc8";><code>8dde9a9</code></a>
 Extend the FFM layout audit to the Unix platforms, and fix what it found (<a 
href="https://redirect.github.com/oshi/oshi/issues/3701";>#3701</a>)</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/314185063f1baaa45811788832b9df744d2f7f9d";><code>3141850</code></a>
 Update vmactions/freebsd-vm digest to d0518f9 (<a 
href="https://redirect.github.com/oshi/oshi/issues/3699";>#3699</a>)</li>
   <li><a 
href="https://github.com/oshi/oshi/commit/75aabd02973d1524b072e86d336ea03cad99a343";><code>75aabd0</code></a>
 Update actions/upload-artifact action to v7 (<a 
href="https://redirect.github.com/oshi/oshi/issues/3700";>#3700</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/oshi/oshi/compare/oshi-parent-6.12.0...oshi-parent-7.6.0";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.github.oshi:oshi-core&package-manager=maven&previous-version=6.12.0&new-version=7.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   Dependabot will resolve any conflicts with this PR as long as you don't 
alter it yourself. You can also trigger a rebase manually by commenting 
`@dependabot rebase`.
   
   [//]: # (dependabot-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   You can trigger Dependabot actions by commenting on this PR:
   - `@dependabot rebase` will rebase this PR
   - `@dependabot recreate` will recreate this PR, overwriting any edits that 
have been made to it
   - `@dependabot show <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@dependabot ignore this major version` will close this PR and stop 
Dependabot creating any more for this major version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop 
Dependabot creating any more for this minor version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop 
Dependabot creating any more for this dependency (unless you reopen the PR or 
upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to