* [PATCH 0/2] eudev: upgrade 3.2.14 -> 3.2.15
@ 2026-10-15 13:08 Alex Kiernan
2026-10-15 13:08 ` [PATCH 1/2] base-passwd: add the render group for eudev-3.2.15 Alex Kiernan
2026-10-15 13:08 ` [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
0 siblings, 2 replies; 5+ messages in thread
From: Alex Kiernan @ 2026-10-15 13:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Alex Kiernan
eudev 3.2.15 adds a render group for DRM render nodes, so we add that to
base-passwd first, then upgrade eudev.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
Alex Kiernan (2):
base-passwd: add the render group for eudev-3.2.15
eudev: upgrade 3.2.14 -> 3.2.15
.../0001-base-passwd-add-the-render-group.patch | 29 +++++
meta/recipes-core/base-passwd/base-passwd_3.6.8.bb | 16 +++
....c-sync-dev_urandom-implementation-to-sys.patch | 138 ---------------------
meta/recipes-core/udev/eudev/netifnames.patch | 17 ---
.../udev/{eudev_3.2.14.bb => eudev_3.2.15.bb} | 4 +-
5 files changed, 46 insertions(+), 158 deletions(-)
---
base-commit: 6b2dcfdbe16055edc88f72dabf07e33f8163d8eb
change-id: 20261015-eudev-3-2-15-e406a27a8c72
Best regards,
--
Alex Kiernan <alex.kiernan@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] base-passwd: add the render group for eudev-3.2.15
2026-10-15 13:08 [PATCH 0/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
@ 2026-10-15 13:08 ` Alex Kiernan
2026-10-15 13:08 ` [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
1 sibling, 0 replies; 5+ messages in thread
From: Alex Kiernan @ 2026-10-15 13:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Alex Kiernan
Also add a comment to document why we add groups here and not in eudev,
and why they're not submitted upstream.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
.../0001-base-passwd-add-the-render-group.patch | 29 ++++++++++++++++++++++
meta/recipes-core/base-passwd/base-passwd_3.6.8.bb | 16 ++++++++++++
2 files changed, 45 insertions(+)
diff --git a/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-add-the-render-group.patch b/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-add-the-render-group.patch
new file mode 100644
index 000000000000..33ac1ec9e017
--- /dev/null
+++ b/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-add-the-render-group.patch
@@ -0,0 +1,29 @@
+From 8e1b08f3e701bb08b57c85c6818991f92a9611ae Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 15 Oct 2026 10:58:02 +0100
+Subject: [PATCH] base-passwd: add the render group
+
+eudev-3.2.15 adds the render group:
+
+ Use the dedicated render group for /dev/dri/renderD*, kfd and accel
+ devices, as systemd does. Access is unchanged (mode 0666); systems
+ without a render group log an error and keep them root-owned.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ group.master | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/group.master b/group.master
+index a0f9daf92d57..20ea5da3a450 100644
+--- a/group.master
++++ b/group.master
+@@ -35,6 +35,7 @@ sasl:*:45:
+ plugdev:*:46:
+ kvm:*:47:
+ sgx:*:48:
++render:*:49:
+ staff:*:50:
+ games:*:60:
+ shutdown:*:70:
diff --git a/meta/recipes-core/base-passwd/base-passwd_3.6.8.bb b/meta/recipes-core/base-passwd/base-passwd_3.6.8.bb
index ec11e8827855..dddc326bc575 100644
--- a/meta/recipes-core/base-passwd/base-passwd_3.6.8.bb
+++ b/meta/recipes-core/base-passwd/base-passwd_3.6.8.bb
@@ -5,6 +5,21 @@ SECTION = "base"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+# We carry a number of extra groups in group.master which can neither go
+# upstream nor be created by the recipes which need them:
+#
+# - Upstream base-passwd only serves Debian and Debian-based systems. Debian
+# policy (9.2.2) restricts base-passwd to IDs which must be statically
+# allocated and identical everywhere; any other group is created by the
+# package which needs it (adduser/systemd-sysusers). Upstream has told us
+# anyone else using base-passwd is on their own:
+# https://salsa.debian.org/debian/base-passwd/-/merge_requests/17
+#
+# - We can't create them with useradd.bbclass in the recipes which use them.
+# Using useradd also brings shadow's login into the image, which fails with
+# "setgid: Function not implemented" on kernels without CONFIG_MULTIUSER,
+# unlike busybox's login.
+
SRC_URI = "https://launchpad.net/debian/+archive/primary/+files/${BPN}_${PV}.tar.xz \
file://0001-Add-a-shutdown-group.patch \
file://0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch \
@@ -14,6 +29,7 @@ SRC_URI = "https://launchpad.net/debian/+archive/primary/+files/${BPN}_${PV}.tar
file://0007-Add-wheel-group.patch \
file://0001-base-passwd-Add-the-sgx-group.patch \
file://0001-Add-clock-group.patch \
+ file://0001-base-passwd-add-the-render-group.patch \
"
SRC_URI[sha256sum] = "fab3d0e6e8b641e116bda9bd5f7a7ed24482384c1513f6a369b506327fbc8dde"
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15
2026-10-15 13:08 [PATCH 0/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
2026-10-15 13:08 ` [PATCH 1/2] base-passwd: add the render group for eudev-3.2.15 Alex Kiernan
@ 2026-10-15 13:08 ` Alex Kiernan
2026-10-16 8:18 ` [OE-core] " Mathieu Dubois-Briand
1 sibling, 1 reply; 5+ messages in thread
From: Alex Kiernan @ 2026-10-15 13:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Alex Kiernan
Drop backported commits.
Changes:
Aitor Cuadrado Zubizarreta (1):
Fix a mistake in the length of USEC_INITIALIZED when parsing property string
Aleksey Vasenev (1):
ata_id: Fixed getting Response Code from SCSI Sense Data (#24921)
Andre Eikmeyer (1):
udev: derive path ID for PNP devices from ACPI firmware node
Andrey Albershteyn (1):
udev: enable BLKID_SUBLKS_FSINFO tags
Boian Bonev (39):
Better wording
use a dynamic buffer to fix 'dmi_memory_id' ressize 16384 too short
log: return the negative error from log_*_errno() and map %m to it
udev-event: do not overflow the argv array in udev_build_argv()
man: RUN substitutions are performed while the rule is processed
udevadm-hwdb: write the compatible database format by default, add hwdb_format= to udev.conf
libudev-monitor: filter in userspace if the socket filter does not fit
udev-rules: do not ignore rd.* kernel command line options in IMPORT{cmdline}
udev-ctrl: NUL terminate received strings and validate the log level
Merge hwdb from systemd
udev-builtin-path_id: add sas_legacy_path udev.conf option
udev-builtin-path_id: add fallbacks for USB_HUB_PR_* constants
fido_id: fix use of uninitialized variable
udev-builtin: size the argv array with UDEV_ARGV_MAX
Merge suitable rules changes from systemd
ci: build on current Devuan and supported Alpine releases
udev-watch: do not log an error when the watched device is already gone
udevadm-trigger: add --type=all
README: point Gentoo users to the without-systemd overlay
hwdb: add Chromium OS autosuspend list
util: set the umask when declaring the cleanup variable in mk[o]stemp_safe()
udevadm-info: check the result of dirfd() in the db cleanup helpers
udev-watch: check the result of dirfd() when restoring watches
udevd: drop dead stores when skipping a locked block device
net_id: drop dead initialization of prefix
udevadm-hwdb: do not lose entries when splitting a trie node fails
scsi_id: do not read past the end of a config line with an unterminated quote
ci: install libselinux-dev or libselinux1-dev on Devuan
log: make the return value of log_oom() visible at the call site
udev-rules: stop reading a rules file once a continued line hits EOF
path-util: decide on the separator before reallocating the path
libudev-monitor: initialize the address buffer for getsockname()
udevd: assert that worker_returned() gets a valid socket
collect: handle unexpected states explicitly in everybody()
tree-wide: fix constness with C23 qualifier-preserving glibc functions
configure.ac: point the bug report URL to eudev-project
rules: put render nodes in the render group
libudev: bump the library revision
bump version to 3.2.15
Csókás, Bence (1):
udev-rules: Fix compile errors with `-DDEBUG=1`
CuriouslyCurious (1):
build: Add libtool as build-dependency for Alpine
Daniel Mack (1):
util: fix another cunescape() regression
Daniel28972897 (1):
libudev-device: set errno also for a cached failed parent lookup
David Herrmann (2):
libudev-hwdb: fix child/value offset calculation
hwdb: order properties by origin
David Milburn (1):
udev: build by-path identifiers for ATA devices.
Davin McCall (1):
udevd: add support for S6/dinit-compatible readiness notification
Franck Bui (1):
udev-rules: support '-=' operator for SYMLINK
Frantisek Sumsal (2):
shared: parse the whole /proc/cmdline
scsi_id: use safe_atoi() instead of plain atoi()
Hendrik Brueckner (1):
udev/path_id: correct segmentation fault due to missing NULL check
Jiri Pirko (1):
udev-builtin-path_id: emit 'sf-<N>' token for auxiliary sub-functions
Joe Slater (1):
80-net-name-slot.rules: consider ID_NET_NAME_MAC as a name
Johannes Nixdorf (1):
78-sound-card.rules: Import ID_PATH early
Joshua Goins (2):
udev: Fix some tablet pads being classified as mouse or joysticks
udev: Don't mark as tablet if device has relative coordinates
Karel Zak (1):
udev-builtin-blkid: add support for --hint offsets
Kay Sievers (2):
libudev-device: translate / vs. ! in sysname and refuse non-normalized names
get_process_environ: exit early when there is nothing to read
Keith Busch (1):
udev/path_id: introduce support for NVMe devices
Lennart Poettering (11):
udev-rules: proc_cmdline_get_key() FTW!
libudev-monitor: add missing errno initialization/error propagation
udev-rules: consider "-" and "_" equivalent in IMPORT{cmdline} keys
mtd_probe: fix lseek() parameter order
udev-builtin-blkid: pick up info of backing file
udev: modernize udev-builtin-btrfs a bit
utf8: let's update utf16_to_utf8() a bit
process: an empty environment block should be returned as such
fileio: try to read one byte too much in read_full_stream()
fileio: initialize errno to zero before we do fread()
udevadm: use xopendirat() where appropriate
Lidong Zhong (1):
udev: rename the persistent link for ATA devices
Luca Boccassi (9):
libudev-monitor: bound the tag filter BPF program size
libudev-monitor: avoid 32-bit overflow in the monitor properties bounds check
helpers: check for invalid chars in various fields received from the kernel
scsi_id: use strscpy instead of strncpy for wwn fields
scsi_id: null-terminate serial after append_vendor_model
scsi_id: check for invalid chars in various fields received from the kernel
scsi_id: check for invalid header from kernel buffer
udev: ensure tag parsing stays within bounds
net_id: check for invalid chars in various fields received from the kernel
Lukas Nykryn (1):
udev: add new builtin net_driver
Marek Vasut (1):
udev: Handle AMBA bus the same way as generic platform bus
Martin Wilck (2):
udevadm: cleanup-db: don't delete information for kept db entries
udev-builtin-path_id: SAS wide ports must have num_phys > 1
Masahisa Kojima (1):
random-util.c: sync dev_urandom implementation to systemd-udev
Matthias Schiffer (1):
rules: add mtd/by-name symlinks
Michal Schmidt (1):
udevd: fix crash with invalid udev.log-priority
Michal Sekletar (1):
udev-rules: allow substitutions for SECLABEL key
Mike Yuan (1):
udev-ctrl: add missing size check of received message
Milan Kyselica (1):
udev: fix bounds check in dev_if_packed_info()
Nate Clark (1):
udev-builtin-blkid: Use _cleanup_blkid_free_probe_ to free probe (#6108)
Nicolas Boichat (1):
udevadm-hwdb: Return non-zero exit code on error when --strict is used
Peter Hutterer (7):
libudev-hwdb: fix matching for characters with an ord > 127
udev-builtin-input_id: any i2c mouse is a pointing stick
udev: if a tablet has BTN_0, label it as ID_INPUT_TABLET_PAD
udev-builtin-input_id: don't label absolute mice as pointing sticks
udev-builtin-input_id: use heuristics to detect joysticks
udev: don't allow pointing stick sensitivities greater than 255 (#5927)
udev: skip EVDEV_ABS override on devices without EV_ABS (#5984)
Ross Burton (1):
udevadm-hwdb: strip the root from filenames when generating hwdb.bin
Ryan Attard (1):
ata_id: Add support for host managed zone block devices (#14933)
Tobias Stoeckmann (1):
udev: spot inconsistent quoting (just one single quote)
Tom Gundersen (1):
udev: bulitin-hwdb - fix memory leak
Tomas Bzatek (1):
ata_id: export read look-ahead values
Vicente Bergas (1):
Add BTN_ key codes
Viktor Mihajlovski (1):
udev: Use parent bus id for virtio disk builtin path-id (#5500)
Vito Caputo (2):
strxcpyx: don't overflow dest on strpcpyf truncate
fileio: fix read_full_stream() bugs (#3887)
Wenchao Hao (1):
scsi_id: retry inquiry ioctl if host_byte is DID_TRANSPORT_DISRUPTED
Yu Watanabe (37):
udev-rules: fix negative match rule for SYMLINK and TAG
udev-rules: replace unsafe characters on assigning ENV{key}="val" when OPTIONS="string_escape=replace" is set
udev-rules: support case insensitive match
udev-rules: evaluate formatting in RUN= key earlier
udev-rules: allow to execute longer command line
udev-rules: protect more properties often set by kernel and internally used by udevd
udev-rules: refuse invalid devlink
libudev-device,udev-rules: tag must be a valid filename
udevd: make newer event also blocked by DEVPATH_OLD and by events for the same device node
udevd: refuse to enable inotify watch on remove event
udev-watch: also save map from device ID to watch handle in /run/udev/watch
udev-rules: do not import property value from truncated line of program result
libudev-monitor: use SO_DETACH_FILTER to remove BPF program
libudev-device: make udev_device_set_syspath() clear sysname and sysnum
libudev-enumerate: use path_startswith() to match parent device
libudev-enumerate: also check is_initialized match when scanning by tags or children
libudev: check arguments of more public functions
libudev-device: ignore failure in caching the written sysattr value
udev: end the watch of the processed device, and drop redundant db update
cdrom_id: check last track info
helpers: always open with O_NOCTTY
scsi_id: rename positional arguments
dmi_memory_id: update table with latest SMBIOS specification
helpers: gracefully handle ENODEV or friends in opening device node
udev: gracefully handle ENODEV or friends in opening device node
udev: make udevadm test and test-builtin not destructive
udev-builtin-kmod: support to run without arguments
udev: always open with O_NOCTTY
udev: always create device symlinks for USB disks
udev: support by-path devlink for multipath nvme block devices
udev: add USB revision in ID_PATH
udev: do not set ID_PATH and by-path symlink for nvmf disks
udev-builtin: make btrfs builtin command only check arguments when run in test mode
udev-builtin-btrfs: refuse to call for irrelevant device node
net_id: fix potential buffer overflow
udevd: use worker_free() on failure in worker_new()
udev-event: check command is not empty before executing
Yu, Li-Yu (1):
udev-rules: escaped string syntax e"..." in rule files
Zbigniew Jędrzejewski-Szmek (9):
libudev-device: attempt to read db again if it wasn't found
libudev-device: fix udev_device_set_sysattr_value()
v4l_id: use O_CLOEXEC|O_NOCTTY
helpers: downgrade ENOMEDIUM warnings
scsi_id: do not ignore positive error values from set_inq_values()
udev: change the modalias string for usb devices to include the device name
tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0
basic/escape: merge utf8 and non-utf8 paths in cunescape_one
tree-wide: add bsearch_safe and use where appropriate
chenjiayi (1):
scsi_id: distinguish host-managed zoned block in scsi_id
dongshengyuan (1):
udev: avoid reading before empty capability masks
gaoyi (1):
udevd: don't kill worker in worker_kill() when it's running
huyubiao (1):
udevadm-hwdb: fix unsigned and signed comparison problem
jeffhuang (1):
libudev-hwdb: bounds-check trie offsets against the mmap before dereferencing
jmestwa-coder (1):
cdrom_id: zero scsi response buffers before parsing
spaette (1):
typos
我超厉害 (1):
ata_id: even if a device is a zac device, scsi-$ID_SERIAL will be reserved for it (#30459)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
....c-sync-dev_urandom-implementation-to-sys.patch | 138 ---------------------
meta/recipes-core/udev/eudev/netifnames.patch | 17 ---
.../udev/{eudev_3.2.14.bb => eudev_3.2.15.bb} | 4 +-
3 files changed, 1 insertion(+), 158 deletions(-)
diff --git a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
deleted file mode 100644
index 668aa731aca1..000000000000
--- a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 95c871b7b912f39539777ac222ef7f8798bb0225 Mon Sep 17 00:00:00 2001
-From: Masahisa Kojima <kojima.masahisa@socionext.com>
-Date: Thu, 25 Apr 2024 17:23:10 +0900
-Subject: [PATCH] random-util.c: sync dev_urandom implementation to
- systemd-udev
-
-Current dev_urandom() assumes that reading /dev/urandom
-will never block regardless if the random pool is fully
-initialized or not.
-This assumption is no longer applicable since linux kerrnel
-enforces the /dev/urandom entropy initialization from
-v5.18-rc2 with the commit:
-48bff1053c17 ("random: opportunistically initialize on /dev/urandom reads").
-
-With this, when we use the linux v5.18-rc2 or later,
-dev_urandom() will block if enough random pool is not supplied.
-It causes the boot delay, typically 1024msec(4msec * 256 = 1024msec)
-delay to fill the 256 bits entropy for the case CONFIG_HZ=250.
-
-To prevent this boot delay, this commit syncs dev_urandom()
-implementation to the systemd-udev.
-The systemd-udev implementation of reading /dev/urandom is as follows.
- - Try to get random with calling getrandom(GRND_INSECURE)
- - If kernel does not support GRND_INSECURE, fallback to GRND_NONBLOCK
- - If enough entropy is not supplied, fallback to reading /dev/urandom,
- this will block when the kernel version is v5.18-rc2 or later
-
-With this modification, dev_urandom() tries not to block
-as much as possible.
-
-This modification still keeps the backword compatibility,
-dev_random() will never block if the commit(48bff1053c17) is not
-applied to the linux kernel, the behavior is same as before
-in this case.
-
-Upstream-Status: Backport [a49a3aaa460add6ae7ea208b4cac630e56fe1180]
-Signed-off-by: Masahisa Kojima <kojima.masahisa@socionext.com>
----
- src/shared/missing.h | 4 +++
- src/shared/random-util.c | 70 ++++++++++++++++++----------------------
- 2 files changed, 35 insertions(+), 39 deletions(-)
-
-diff --git a/src/shared/missing.h b/src/shared/missing.h
-index 1967840cdbf3..1caec0f9207c 100644
---- a/src/shared/missing.h
-+++ b/src/shared/missing.h
-@@ -79,6 +79,10 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) {
- #define GRND_RANDOM 0x0002
- #endif
-
-+#ifndef GRND_INSECURE
-+#define GRND_INSECURE 0x0004
-+#endif
-+
- #ifndef BTRFS_IOCTL_MAGIC
- #define BTRFS_IOCTL_MAGIC 0x94
- #endif
-diff --git a/src/shared/random-util.c b/src/shared/random-util.c
-index 01a28c8ef4e9..852b00e4ce2b 100644
---- a/src/shared/random-util.c
-+++ b/src/shared/random-util.c
-@@ -31,45 +31,37 @@
- #include "util.h"
-
- int dev_urandom(void *p, size_t n) {
-- static int have_syscall = -1;
--
-- _cleanup_close_ int fd = -1;
-- int r;
--
-- /* Gathers some randomness from the kernel. This call will
-- * never block, and will always return some data from the
-- * kernel, regardless if the random pool is fully initialized
-- * or not. It thus makes no guarantee for the quality of the
-- * returned entropy, but is good enough for or usual usecases
-- * of seeding the hash functions for hashtable */
--
-- /* Use the getrandom() syscall unless we know we don't have
-- * it, or when the requested size is too large for it. */
-- if (have_syscall != 0 || (size_t) (int) n != n) {
-- r = getrandom(p, n, GRND_NONBLOCK);
-- if (r == (int) n) {
-- have_syscall = true;
-- return 0;
-- }
--
-- if (r < 0) {
-- if (errno == ENOSYS)
-- /* we lack the syscall, continue with
-- * reading from /dev/urandom */
-- have_syscall = false;
-- else if (errno == EAGAIN)
-- /* not enough entropy for now. Let's
-- * remember to use the syscall the
-- * next time, again, but also read
-- * from /dev/urandom for now, which
-- * doesn't care about the current
-- * amount of entropy. */
-- have_syscall = true;
-- else
-- return -errno;
-- } else
-- /* too short read? */
-- return -ENODATA;
-+ static bool have_getrandom = true, have_grndinsecure = true;
-+ _cleanup_close_ int fd = -EBADF;
-+
-+ if (n == 0)
-+ return 0;
-+
-+ for (;;) {
-+ ssize_t l;
-+
-+ if (!have_getrandom)
-+ break;
-+
-+ l = getrandom(p, n, have_grndinsecure ? GRND_INSECURE : GRND_NONBLOCK);
-+ if (l > 0) {
-+ if ((size_t) l == n)
-+ return 0; /* Done reading, success. */
-+ p = (uint8_t *) p + l;
-+ n -= l;
-+ continue; /* Interrupted by a signal; keep going. */
-+ } else if (l == 0)
-+ break; /* Weird, so fallback to /dev/urandom. */
-+ else if (errno == ENOSYS) {
-+ have_getrandom = false;
-+ break; /* No syscall, so fallback to /dev/urandom. */
-+ } else if (errno == EINVAL && have_grndinsecure) {
-+ have_grndinsecure = false;
-+ continue; /* No GRND_INSECURE; fallback to GRND_NONBLOCK. */
-+ } else if (errno == EAGAIN && !have_grndinsecure)
-+ break; /* Will block, but no GRND_INSECURE, so fallback to /dev/urandom. */
-+
-+ break; /* Unexpected, so just give up and fallback to /dev/urandom. */
- }
-
- fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
diff --git a/meta/recipes-core/udev/eudev/netifnames.patch b/meta/recipes-core/udev/eudev/netifnames.patch
deleted file mode 100644
index 4f8e54d12d4a..000000000000
--- a/meta/recipes-core/udev/eudev/netifnames.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-eudev: consider ID_NET_NAME_MAC as an interface name
-
-eudev might not create names based on slot or path.
-
-Upstream-Status: Backport [github.com/eudev-project/eudev/pull/274]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
---- a/rules/80-net-name-slot.rules
-+++ b/rules/80-net-name-slot.rules
-@@ -10,5 +10,6 @@ ENV{net.ifnames}=="0", GOTO="net_name_sl
- NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
- NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
- NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
-+NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
-
- LABEL="net_name_slot_end"
diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.15.bb
similarity index 93%
rename from meta/recipes-core/udev/eudev_3.2.14.bb
rename to meta/recipes-core/udev/eudev_3.2.15.bb
index 3e4972694ac0..2ff2370bcb5e 100644
--- a/meta/recipes-core/udev/eudev_3.2.14.bb
+++ b/meta/recipes-core/udev/eudev_3.2.15.bb
@@ -10,13 +10,11 @@ DEPENDS = "gperf-native"
PROVIDES = "udev"
SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
- file://netifnames.patch \
file://init \
file://local.rules \
- file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \
"
-SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
+SRC_URI[sha256sum] = "eb69809fc0d1187f2463ab2149c53aa9f42a78e59f14ebea68eae6cb6b4fc1c3"
GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15
2026-10-15 13:08 ` [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
@ 2026-10-16 8:18 ` Mathieu Dubois-Briand
2026-10-16 12:16 ` Alex Kiernan
0 siblings, 1 reply; 5+ messages in thread
From: Mathieu Dubois-Briand @ 2026-10-16 8:18 UTC (permalink / raw)
To: alex.kiernan, openembedded-core
On Thu Oct 15, 2026 at 3:08 PM CEST, Alex Kiernan via lists.openembedded.org wrote:
> Drop backported commits.
>
> Changes:
>
...
>
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> ---
Hi Alex,
Thanks for the upgrade. But it looks like we can see runtime failures,
at lease on x86 qemu:
-----------------------
Central error: [ 1.369029] udevd[144]: segfault at 7f9e4cea81c0 ip 00007f9e4d5f5643 sp 00007ffcea775058 error 4 in libc.so[3a643,7f9e4d5cd000+6e000] likely on CPU 0 (core 0, socket 0)
***********************
[ 1.324424] VFS: Pivoted into new rootfs
[ 1.325948] Freeing unused kernel image (initmem) memory: 3804K
[ 1.327763] Write protecting the kernel read-only data: 30720k
[ 1.329535] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input1
[ 1.332703] hid-generic 0003:0627:0001.0001: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:1d.7-1/input0
[ 1.332741] Freeing unused kernel image (text/rodata gap) memory: 732K
[ 1.337474] Freeing unused kernel image (rodata/data gap) memory: 1588K
[ 1.339154] Run /sbin/init as init process
[ 1.340184] with arguments:
[ 1.340185] /sbin/init
[ 1.340186] with environment:
[ 1.340186] HOME=/
[ 1.340187] TERM=linux
[ 1.356209] udevd[143]: starting version 3.2.15
[ 1.360803] udevd[144]: starting eudev-3.2.15
[ 1.369029] udevd[144]: segfault at 7f9e4cea81c0 ip 00007f9e4d5f5643 sp 00007ffcea775058 error 4 in libc.so[3a643,7f9e4d5cd000+6e000] likely on CPU 0 (core 0, socket 0)
[ 1.373539] Code: ca 74 e4 e9 69 ff ff ff 0f 1f 80 00 00 00 00 48 89 f8 c3 0f 1f 40 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 0f b6 17 <0f> b6 0e 31 c0 38 ca 74 25 eb 32 0f 1f 80 00 00 00 00 66 66 2e 0f
[ 1.446848] usb 1-2: new high-speed USB device number 3 using ehci-pci
[ 1.579181] input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input2
[ 1.633000] hid-generic 0003:0627:0001.0002: input: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:1d.7-2/input0
[ 121.483345] EXT4-fs (vda): re-mounted 7b4506d6-59d8-4ca9-87c3-880a5a0dcf6c.
This did happen a few times in a row on rebuild:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1371
https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1372
https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1373
https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1379
Can you have a look at the issue?
Also, about the commit message: we try to embedded a bit of the
changelog on upgrades, but this one is definitely too long. There is no
hard constraint, but a good excerpt is probably between 5 and 30 lines.
Can you trim it down a bit?
Thanks,
Mathieu
> ....c-sync-dev_urandom-implementation-to-sys.patch | 138 ---------------------
> meta/recipes-core/udev/eudev/netifnames.patch | 17 ---
> .../udev/{eudev_3.2.14.bb => eudev_3.2.15.bb} | 4 +-
> 3 files changed, 1 insertion(+), 158 deletions(-)
>
> diff --git a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
> deleted file mode 100644
> index 668aa731aca1..000000000000
> --- a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
> +++ /dev/null
> @@ -1,138 +0,0 @@
> -From 95c871b7b912f39539777ac222ef7f8798bb0225 Mon Sep 17 00:00:00 2001
> -From: Masahisa Kojima <kojima.masahisa@socionext.com>
> -Date: Thu, 25 Apr 2024 17:23:10 +0900
> -Subject: [PATCH] random-util.c: sync dev_urandom implementation to
> - systemd-udev
> -
> -Current dev_urandom() assumes that reading /dev/urandom
> -will never block regardless if the random pool is fully
> -initialized or not.
> -This assumption is no longer applicable since linux kerrnel
> -enforces the /dev/urandom entropy initialization from
> -v5.18-rc2 with the commit:
> -48bff1053c17 ("random: opportunistically initialize on /dev/urandom reads").
> -
> -With this, when we use the linux v5.18-rc2 or later,
> -dev_urandom() will block if enough random pool is not supplied.
> -It causes the boot delay, typically 1024msec(4msec * 256 = 1024msec)
> -delay to fill the 256 bits entropy for the case CONFIG_HZ=250.
> -
> -To prevent this boot delay, this commit syncs dev_urandom()
> -implementation to the systemd-udev.
> -The systemd-udev implementation of reading /dev/urandom is as follows.
> - - Try to get random with calling getrandom(GRND_INSECURE)
> - - If kernel does not support GRND_INSECURE, fallback to GRND_NONBLOCK
> - - If enough entropy is not supplied, fallback to reading /dev/urandom,
> - this will block when the kernel version is v5.18-rc2 or later
> -
> -With this modification, dev_urandom() tries not to block
> -as much as possible.
> -
> -This modification still keeps the backword compatibility,
> -dev_random() will never block if the commit(48bff1053c17) is not
> -applied to the linux kernel, the behavior is same as before
> -in this case.
> -
> -Upstream-Status: Backport [a49a3aaa460add6ae7ea208b4cac630e56fe1180]
> -Signed-off-by: Masahisa Kojima <kojima.masahisa@socionext.com>
> ----
> - src/shared/missing.h | 4 +++
> - src/shared/random-util.c | 70 ++++++++++++++++++----------------------
> - 2 files changed, 35 insertions(+), 39 deletions(-)
> -
> -diff --git a/src/shared/missing.h b/src/shared/missing.h
> -index 1967840cdbf3..1caec0f9207c 100644
> ---- a/src/shared/missing.h
> -+++ b/src/shared/missing.h
> -@@ -79,6 +79,10 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) {
> - #define GRND_RANDOM 0x0002
> - #endif
> -
> -+#ifndef GRND_INSECURE
> -+#define GRND_INSECURE 0x0004
> -+#endif
> -+
> - #ifndef BTRFS_IOCTL_MAGIC
> - #define BTRFS_IOCTL_MAGIC 0x94
> - #endif
> -diff --git a/src/shared/random-util.c b/src/shared/random-util.c
> -index 01a28c8ef4e9..852b00e4ce2b 100644
> ---- a/src/shared/random-util.c
> -+++ b/src/shared/random-util.c
> -@@ -31,45 +31,37 @@
> - #include "util.h"
> -
> - int dev_urandom(void *p, size_t n) {
> -- static int have_syscall = -1;
> --
> -- _cleanup_close_ int fd = -1;
> -- int r;
> --
> -- /* Gathers some randomness from the kernel. This call will
> -- * never block, and will always return some data from the
> -- * kernel, regardless if the random pool is fully initialized
> -- * or not. It thus makes no guarantee for the quality of the
> -- * returned entropy, but is good enough for or usual usecases
> -- * of seeding the hash functions for hashtable */
> --
> -- /* Use the getrandom() syscall unless we know we don't have
> -- * it, or when the requested size is too large for it. */
> -- if (have_syscall != 0 || (size_t) (int) n != n) {
> -- r = getrandom(p, n, GRND_NONBLOCK);
> -- if (r == (int) n) {
> -- have_syscall = true;
> -- return 0;
> -- }
> --
> -- if (r < 0) {
> -- if (errno == ENOSYS)
> -- /* we lack the syscall, continue with
> -- * reading from /dev/urandom */
> -- have_syscall = false;
> -- else if (errno == EAGAIN)
> -- /* not enough entropy for now. Let's
> -- * remember to use the syscall the
> -- * next time, again, but also read
> -- * from /dev/urandom for now, which
> -- * doesn't care about the current
> -- * amount of entropy. */
> -- have_syscall = true;
> -- else
> -- return -errno;
> -- } else
> -- /* too short read? */
> -- return -ENODATA;
> -+ static bool have_getrandom = true, have_grndinsecure = true;
> -+ _cleanup_close_ int fd = -EBADF;
> -+
> -+ if (n == 0)
> -+ return 0;
> -+
> -+ for (;;) {
> -+ ssize_t l;
> -+
> -+ if (!have_getrandom)
> -+ break;
> -+
> -+ l = getrandom(p, n, have_grndinsecure ? GRND_INSECURE : GRND_NONBLOCK);
> -+ if (l > 0) {
> -+ if ((size_t) l == n)
> -+ return 0; /* Done reading, success. */
> -+ p = (uint8_t *) p + l;
> -+ n -= l;
> -+ continue; /* Interrupted by a signal; keep going. */
> -+ } else if (l == 0)
> -+ break; /* Weird, so fallback to /dev/urandom. */
> -+ else if (errno == ENOSYS) {
> -+ have_getrandom = false;
> -+ break; /* No syscall, so fallback to /dev/urandom. */
> -+ } else if (errno == EINVAL && have_grndinsecure) {
> -+ have_grndinsecure = false;
> -+ continue; /* No GRND_INSECURE; fallback to GRND_NONBLOCK. */
> -+ } else if (errno == EAGAIN && !have_grndinsecure)
> -+ break; /* Will block, but no GRND_INSECURE, so fallback to /dev/urandom. */
> -+
> -+ break; /* Unexpected, so just give up and fallback to /dev/urandom. */
> - }
> -
> - fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
> diff --git a/meta/recipes-core/udev/eudev/netifnames.patch b/meta/recipes-core/udev/eudev/netifnames.patch
> deleted file mode 100644
> index 4f8e54d12d4a..000000000000
> --- a/meta/recipes-core/udev/eudev/netifnames.patch
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -eudev: consider ID_NET_NAME_MAC as an interface name
> -
> -eudev might not create names based on slot or path.
> -
> -Upstream-Status: Backport [github.com/eudev-project/eudev/pull/274]
> -
> -Signed-off-by: Joe Slater <joe.slater@windriver.com>
> -
> ---- a/rules/80-net-name-slot.rules
> -+++ b/rules/80-net-name-slot.rules
> -@@ -10,5 +10,6 @@ ENV{net.ifnames}=="0", GOTO="net_name_sl
> - NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
> - NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
> - NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
> -+NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
> -
> - LABEL="net_name_slot_end"
> diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.15.bb
> similarity index 93%
> rename from meta/recipes-core/udev/eudev_3.2.14.bb
> rename to meta/recipes-core/udev/eudev_3.2.15.bb
> index 3e4972694ac0..2ff2370bcb5e 100644
> --- a/meta/recipes-core/udev/eudev_3.2.14.bb
> +++ b/meta/recipes-core/udev/eudev_3.2.15.bb
> @@ -10,13 +10,11 @@ DEPENDS = "gperf-native"
> PROVIDES = "udev"
>
> SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
> - file://netifnames.patch \
> file://init \
> file://local.rules \
> - file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \
> "
>
> -SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
> +SRC_URI[sha256sum] = "eb69809fc0d1187f2463ab2149c53aa9f42a78e59f14ebea68eae6cb6b4fc1c3"
>
> GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
>
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15
2026-10-16 8:18 ` [OE-core] " Mathieu Dubois-Briand
@ 2026-10-16 12:16 ` Alex Kiernan
0 siblings, 0 replies; 5+ messages in thread
From: Alex Kiernan @ 2026-10-16 12:16 UTC (permalink / raw)
To: Mathieu Dubois-Briand; +Cc: openembedded-core
On Fri, Oct 16, 2026 at 9:18 AM Mathieu Dubois-Briand
<mathieu.dubois-briand@bootlin.com> wrote:
>
> On Thu Oct 15, 2026 at 3:08 PM CEST, Alex Kiernan via lists.openembedded.org wrote:
> > Drop backported commits.
> >
> > Changes:
> >
> ...
> >
> > Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> > ---
>
> Hi Alex,
>
> Thanks for the upgrade. But it looks like we can see runtime failures,
> at lease on x86 qemu:
>
> -----------------------
> Central error: [ 1.369029] udevd[144]: segfault at 7f9e4cea81c0 ip 00007f9e4d5f5643 sp 00007ffcea775058 error 4 in libc.so[3a643,7f9e4d5cd000+6e000] likely on CPU 0 (core 0, socket 0)
> ***********************
> [ 1.324424] VFS: Pivoted into new rootfs
> [ 1.325948] Freeing unused kernel image (initmem) memory: 3804K
> [ 1.327763] Write protecting the kernel read-only data: 30720k
> [ 1.329535] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input1
> [ 1.332703] hid-generic 0003:0627:0001.0001: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:1d.7-1/input0
> [ 1.332741] Freeing unused kernel image (text/rodata gap) memory: 732K
> [ 1.337474] Freeing unused kernel image (rodata/data gap) memory: 1588K
> [ 1.339154] Run /sbin/init as init process
> [ 1.340184] with arguments:
> [ 1.340185] /sbin/init
> [ 1.340186] with environment:
> [ 1.340186] HOME=/
> [ 1.340187] TERM=linux
> [ 1.356209] udevd[143]: starting version 3.2.15
> [ 1.360803] udevd[144]: starting eudev-3.2.15
> [ 1.369029] udevd[144]: segfault at 7f9e4cea81c0 ip 00007f9e4d5f5643 sp 00007ffcea775058 error 4 in libc.so[3a643,7f9e4d5cd000+6e000] likely on CPU 0 (core 0, socket 0)
> [ 1.373539] Code: ca 74 e4 e9 69 ff ff ff 0f 1f 80 00 00 00 00 48 89 f8 c3 0f 1f 40 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 0f b6 17 <0f> b6 0e 31 c0 38 ca 74 25 eb 32 0f 1f 80 00 00 00 00 66 66 2e 0f
> [ 1.446848] usb 1-2: new high-speed USB device number 3 using ehci-pci
> [ 1.579181] input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input2
> [ 1.633000] hid-generic 0003:0627:0001.0002: input: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:1d.7-2/input0
> [ 121.483345] EXT4-fs (vda): re-mounted 7b4506d6-59d8-4ca9-87c3-880a5a0dcf6c.
>
> This did happen a few times in a row on rebuild:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1371
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1372
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1373
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1379
>
> Can you have a look at the issue?
>
Segfaults on musl... will go dig.
> Also, about the commit message: we try to embedded a bit of the
> changelog on upgrades, but this one is definitely too long. There is no
> hard constraint, but a good excerpt is probably between 5 and 30 lines.
> Can you trim it down a bit?
>
I kinda wondered... given it's a 3 year dump of new commits, I suspect
a "go read the commit log" is probably more useful.
> Thanks,
> Mathieu
>
> > ....c-sync-dev_urandom-implementation-to-sys.patch | 138 ---------------------
> > meta/recipes-core/udev/eudev/netifnames.patch | 17 ---
> > .../udev/{eudev_3.2.14.bb => eudev_3.2.15.bb} | 4 +-
> > 3 files changed, 1 insertion(+), 158 deletions(-)
> >
> > diff --git a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
> > deleted file mode 100644
> > index 668aa731aca1..000000000000
> > --- a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
> > +++ /dev/null
> > @@ -1,138 +0,0 @@
> > -From 95c871b7b912f39539777ac222ef7f8798bb0225 Mon Sep 17 00:00:00 2001
> > -From: Masahisa Kojima <kojima.masahisa@socionext.com>
> > -Date: Thu, 25 Apr 2024 17:23:10 +0900
> > -Subject: [PATCH] random-util.c: sync dev_urandom implementation to
> > - systemd-udev
> > -
> > -Current dev_urandom() assumes that reading /dev/urandom
> > -will never block regardless if the random pool is fully
> > -initialized or not.
> > -This assumption is no longer applicable since linux kerrnel
> > -enforces the /dev/urandom entropy initialization from
> > -v5.18-rc2 with the commit:
> > -48bff1053c17 ("random: opportunistically initialize on /dev/urandom reads").
> > -
> > -With this, when we use the linux v5.18-rc2 or later,
> > -dev_urandom() will block if enough random pool is not supplied.
> > -It causes the boot delay, typically 1024msec(4msec * 256 = 1024msec)
> > -delay to fill the 256 bits entropy for the case CONFIG_HZ=250.
> > -
> > -To prevent this boot delay, this commit syncs dev_urandom()
> > -implementation to the systemd-udev.
> > -The systemd-udev implementation of reading /dev/urandom is as follows.
> > - - Try to get random with calling getrandom(GRND_INSECURE)
> > - - If kernel does not support GRND_INSECURE, fallback to GRND_NONBLOCK
> > - - If enough entropy is not supplied, fallback to reading /dev/urandom,
> > - this will block when the kernel version is v5.18-rc2 or later
> > -
> > -With this modification, dev_urandom() tries not to block
> > -as much as possible.
> > -
> > -This modification still keeps the backword compatibility,
> > -dev_random() will never block if the commit(48bff1053c17) is not
> > -applied to the linux kernel, the behavior is same as before
> > -in this case.
> > -
> > -Upstream-Status: Backport [a49a3aaa460add6ae7ea208b4cac630e56fe1180]
> > -Signed-off-by: Masahisa Kojima <kojima.masahisa@socionext.com>
> > ----
> > - src/shared/missing.h | 4 +++
> > - src/shared/random-util.c | 70 ++++++++++++++++++----------------------
> > - 2 files changed, 35 insertions(+), 39 deletions(-)
> > -
> > -diff --git a/src/shared/missing.h b/src/shared/missing.h
> > -index 1967840cdbf3..1caec0f9207c 100644
> > ---- a/src/shared/missing.h
> > -+++ b/src/shared/missing.h
> > -@@ -79,6 +79,10 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) {
> > - #define GRND_RANDOM 0x0002
> > - #endif
> > -
> > -+#ifndef GRND_INSECURE
> > -+#define GRND_INSECURE 0x0004
> > -+#endif
> > -+
> > - #ifndef BTRFS_IOCTL_MAGIC
> > - #define BTRFS_IOCTL_MAGIC 0x94
> > - #endif
> > -diff --git a/src/shared/random-util.c b/src/shared/random-util.c
> > -index 01a28c8ef4e9..852b00e4ce2b 100644
> > ---- a/src/shared/random-util.c
> > -+++ b/src/shared/random-util.c
> > -@@ -31,45 +31,37 @@
> > - #include "util.h"
> > -
> > - int dev_urandom(void *p, size_t n) {
> > -- static int have_syscall = -1;
> > --
> > -- _cleanup_close_ int fd = -1;
> > -- int r;
> > --
> > -- /* Gathers some randomness from the kernel. This call will
> > -- * never block, and will always return some data from the
> > -- * kernel, regardless if the random pool is fully initialized
> > -- * or not. It thus makes no guarantee for the quality of the
> > -- * returned entropy, but is good enough for or usual usecases
> > -- * of seeding the hash functions for hashtable */
> > --
> > -- /* Use the getrandom() syscall unless we know we don't have
> > -- * it, or when the requested size is too large for it. */
> > -- if (have_syscall != 0 || (size_t) (int) n != n) {
> > -- r = getrandom(p, n, GRND_NONBLOCK);
> > -- if (r == (int) n) {
> > -- have_syscall = true;
> > -- return 0;
> > -- }
> > --
> > -- if (r < 0) {
> > -- if (errno == ENOSYS)
> > -- /* we lack the syscall, continue with
> > -- * reading from /dev/urandom */
> > -- have_syscall = false;
> > -- else if (errno == EAGAIN)
> > -- /* not enough entropy for now. Let's
> > -- * remember to use the syscall the
> > -- * next time, again, but also read
> > -- * from /dev/urandom for now, which
> > -- * doesn't care about the current
> > -- * amount of entropy. */
> > -- have_syscall = true;
> > -- else
> > -- return -errno;
> > -- } else
> > -- /* too short read? */
> > -- return -ENODATA;
> > -+ static bool have_getrandom = true, have_grndinsecure = true;
> > -+ _cleanup_close_ int fd = -EBADF;
> > -+
> > -+ if (n == 0)
> > -+ return 0;
> > -+
> > -+ for (;;) {
> > -+ ssize_t l;
> > -+
> > -+ if (!have_getrandom)
> > -+ break;
> > -+
> > -+ l = getrandom(p, n, have_grndinsecure ? GRND_INSECURE : GRND_NONBLOCK);
> > -+ if (l > 0) {
> > -+ if ((size_t) l == n)
> > -+ return 0; /* Done reading, success. */
> > -+ p = (uint8_t *) p + l;
> > -+ n -= l;
> > -+ continue; /* Interrupted by a signal; keep going. */
> > -+ } else if (l == 0)
> > -+ break; /* Weird, so fallback to /dev/urandom. */
> > -+ else if (errno == ENOSYS) {
> > -+ have_getrandom = false;
> > -+ break; /* No syscall, so fallback to /dev/urandom. */
> > -+ } else if (errno == EINVAL && have_grndinsecure) {
> > -+ have_grndinsecure = false;
> > -+ continue; /* No GRND_INSECURE; fallback to GRND_NONBLOCK. */
> > -+ } else if (errno == EAGAIN && !have_grndinsecure)
> > -+ break; /* Will block, but no GRND_INSECURE, so fallback to /dev/urandom. */
> > -+
> > -+ break; /* Unexpected, so just give up and fallback to /dev/urandom. */
> > - }
> > -
> > - fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
> > diff --git a/meta/recipes-core/udev/eudev/netifnames.patch b/meta/recipes-core/udev/eudev/netifnames.patch
> > deleted file mode 100644
> > index 4f8e54d12d4a..000000000000
> > --- a/meta/recipes-core/udev/eudev/netifnames.patch
> > +++ /dev/null
> > @@ -1,17 +0,0 @@
> > -eudev: consider ID_NET_NAME_MAC as an interface name
> > -
> > -eudev might not create names based on slot or path.
> > -
> > -Upstream-Status: Backport [github.com/eudev-project/eudev/pull/274]
> > -
> > -Signed-off-by: Joe Slater <joe.slater@windriver.com>
> > -
> > ---- a/rules/80-net-name-slot.rules
> > -+++ b/rules/80-net-name-slot.rules
> > -@@ -10,5 +10,6 @@ ENV{net.ifnames}=="0", GOTO="net_name_sl
> > - NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
> > - NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
> > - NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
> > -+NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
> > -
> > - LABEL="net_name_slot_end"
> > diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.15.bb
> > similarity index 93%
> > rename from meta/recipes-core/udev/eudev_3.2.14.bb
> > rename to meta/recipes-core/udev/eudev_3.2.15.bb
> > index 3e4972694ac0..2ff2370bcb5e 100644
> > --- a/meta/recipes-core/udev/eudev_3.2.14.bb
> > +++ b/meta/recipes-core/udev/eudev_3.2.15.bb
> > @@ -10,13 +10,11 @@ DEPENDS = "gperf-native"
> > PROVIDES = "udev"
> >
> > SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
> > - file://netifnames.patch \
> > file://init \
> > file://local.rules \
> > - file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \
> > "
> >
> > -SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
> > +SRC_URI[sha256sum] = "eb69809fc0d1187f2463ab2149c53aa9f42a78e59f14ebea68eae6cb6b4fc1c3"
> >
> > GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
> >
>
>
>
>
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
--
Alex Kiernan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-16 12:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-15 13:08 [PATCH 0/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
2026-10-15 13:08 ` [PATCH 1/2] base-passwd: add the render group for eudev-3.2.15 Alex Kiernan
2026-10-15 13:08 ` [PATCH 2/2] eudev: upgrade 3.2.14 -> 3.2.15 Alex Kiernan
2026-10-16 8:18 ` [OE-core] " Mathieu Dubois-Briand
2026-10-16 12:16 ` Alex Kiernan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox