Skip to content

Release 3.2.15

Latest

Choose a tag to compare

@bbonev bbonev released this 27 Sep 17:59
· 4 commits to master since this release
v3.2.15
dd22063

This release syncs the hardware database, rules, rules parser, builtins and helper programs with systemd-udev (v262+, see #300). It also brings fixes found by static analysis and builds cleanly with GCC 16 and glibc 2.43.

Before upgrading

  • SAS by-path names: disks behind SAS ports that report num_phys=0 (e.g. smartpqi) now get systemd's names, *-sas-phy<PHY>-lun-<N> instead of *-sas-0x<ADDRESS>-lun-<N>. sas_legacy_path=yes in /etc/udev/udev.conf keeps the old names.
  • ATA by-path links: SATA/PATA disks now get ID_PATH and /dev/disk/by-path/*-ata-* symlinks (#242). Nothing is removed, but scripts or rules that assumed ATA disks have no by-path entry may see new links.
  • Other by-path renames: AMBA devices and mlx5 sub-functions get unique names; before, siblings shared one.
  • Render nodes: /dev/dri/renderD*, kfd and accel devices now belong to the render group instead of video, with mode 0666 as before. Make sure the group exists.
  • Local rules:
    • RUN values are expanded when the rule is processed;
    • ENV{} assignments to kernel-owned or udevd-owned properties are refused;
    • invalid SYMLINK values and tags are rejected;
    • IMPORT{cmdline} matches whole words.
  • libudev: udev_device_set_sysattr_value() returns -ENOENT for a missing attribute (was -ENXIO). The ABI is unchanged: libudev.so.1.6.4, soname libudev.so.1.
  • New udev.conf key hwdb_format: hwdb_format=2 makes later hwdb files and lines win for the same property. It takes effect with the next udevadm hwdb --update. Older versions of libudev cannot read that format, so restart any running udevd that predates this release. The default, hwdb_format=1, keeps the format that every libudev reads.

Also in this release (committed directly)

  • udevadm trigger --type=all
  • Chromium OS autosuspend list in the hwdb
  • dmi_memory_id handles large DMI tables
  • no error is logged when a watched device is already gone
  • fixes for issues found by clang's static analyzer: memory safety, error paths, and several real bugs in the hwdb compiler, scsi_id, fileio and cunescape
  • constness fixes for C23 qualifier-preserving glibc functions (GCC 16, glibc 2.43)
  • CI builds on Devuan daedalus, excalibur and ceres, and on Alpine 3.21, latest and edge
  • bug report URL points to eudev-project
  • SYMLINK-= to remove symlinks added by earlier rules (#289)
  • by-path links for NVMe multipath (nvme-subsystem) devices (#273)
  • IMPORT{cmdline} treats - and _ in keys as equivalent and no longer ignores rd.* options

What's Changed

  • rules: add mtd/by-name symlinks by @tq-schiffern in #267
  • Fix a mistake in the length of USEC_INITIALIZED when parsing property… by @bbonev in #269
  • 78-sound-card.rules: Import ID_PATH early by @mixi in #271
  • udev/path_id: introduce support for NVMe devices by @mscdex in #272
  • 80-net-name-slot.rules: consider ID_NET_NAME_MAC as a name by @jwslater0823 in #274
  • fix typos by @spaette in #276
  • build: Add libtool as build-dependency for Alpine by @CuriouslyCurious in #278
  • random-util.c: sync dev_urandom implementation to systemd-udev by @masahisak in #280
  • udev-rules: Fix compile errors with -DDEBUG=1 by @bence98 in #288
  • Add BTN_ key codes by @vicencb in #284
  • udevd: add support for S6/dinit-compatible readiness notification by @davmac314 in #290
  • Sync with systemd-udev up to a446e8ff2c (v262+) by @bbonev in #300

New Contributors

Full Changelog: v3.2.14...v3.2.15