Debian Patches

Status for ddcutil/3.0.2-2

Patch Description Author Forwarded Bugs Origin Last update
test-device-id-gate-usb-ids.patch Gate usb.ids-backed unit test checks on usb.ids being present
test_device_id_util only checked for pci.ids before running the
usb.ids-backed lookups, so it failed in build environments (e.g. a
Debian buildd chroot) where pci.ids is installed but usb.ids is not.
"Barak A. Pearlmutter" <bap@debian.org> yes 2026-10-08
str-to-long-detect-overflow.patch str_to_long(): reject out-of-range values
strtol() saturates to LONG_MIN/LONG_MAX and sets errno to ERANGE on
overflow, which str_to_long() did not check. On 32-bit architectures,
where long and int are the same width, str_to_int() therefore accepted
e.g. "9999999999" as INT_MAX, failing the test_string_util unit test.
"Barak A. Pearlmutter" <bap@debian.org> yes 2026-10-10
reject-on-class-0-only-when-there-is-no-name.patch sysfs_is_ignorable_i2c_device(): reject on class 0 only when there is no name

This code is as modified by PR #640. with extended comments.

The "class" attribute get_i2c_device_sysfs_class() reads is a PCI class code,
so class == 0 means only that the adapter has no PCI ancestor. That is true of
every platform i2c controller, video or not -- the DisplayLink evdi adapter, the
i2c controllers of ARM boards -- so it was never evidence that the bus cannot
serve a monitor, and rejecting on it lost real display buses: pull request #619,
"Do not ignore sysfs class being zero". The SoC exemption added for #619 tested
for a /sys/devices/platform/soc* node, which many ARM platforms do not have,
their controllers appearing as e.g. ff3c0000.i2c, so those systems kept losing
buses.

Class 0 with no name is still ignorable. A real adapter always has a name
attribute, so a bus with neither offers no evidence of any kind.

For a class-less bus the name prefix table is now the only filter. It covers
every hang documented to date -- smu, mac-io and u4 (Mac G5, platform devices,
hence class-less and previously caught by the class test as well), AMDGPU SMU,
SMBus, Synopsys DesignWare -- and the adapter class rejection in i2c_check_bus()
is guarded on the class being non-NULL, so it does not apply to these buses
either. A bus that hangs when probed must be added to ignorable_prefixes.

sysfs_find_adapter(): resolve the incoming path with realpath() before the walk.
The /sys/devices bound is tested before the first iteration, and callers pass
paths under /sys/bus/i2c/devices or /sys/class/drm, which would fail it and
return NULL without probing anything. Also drop the strlen() and streq(rp1,"/")
terms, which the prefix test subsumes. This corrects the code supplied in
pull request #640.


This fixes build on riscv64 platform.
"Sanford Rockowitz (/shared/home/rock/dot_gitconfig)" no upstream, https://github.com/rockowitz/ddcutil/commit/84421c222d0ddf6a5d5f90e825a3e9f4ef5e6bbd.patch 2026-09-25

All known versions for source package 'ddcutil'

Links