Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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