Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules
@ 2026-10-02 15:12 Fiona Klute via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 1/3] package/systemd/systemd-libudev: new bootstrap subpackage Fiona Klute via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-02 15:12 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Norbert Lange, Sen Hastings, Fiona Klute

Hi everyone,

this series adds a bootstrap package for libudev from systemd. The
reason is that some packages that may be in the dependency chain of
systemd (depending on configuration) depend on libudev, at least for
optional features.

An example is lvm2: It needs libudev to allow using udev's built-in
"blkid" implementation instead of calling "blkid -o udev", which
Busybox's blkid does not support. The issue I saw with Busybox blkid
is that systemd never considered device-mapper block devices as ready
(seen with dm-crypt and dm-verity). Setting
BR2_PACKAGE_UTIL_LINUX_BINARIES=y is a workaround, but shouldn't be
needed when udev has a built-in for that purpose.

Unfortunately adding a dependency on libudev to lvm2 creates a
dependency loop if cryptsetup is also enabled: lvm2 -> systemd
(libudev) -> cryptsetup -> lvm2 (libdevmapper). The bootstrap package
breaks the loop by providing libudev from a build with minimal
options, so lvm2 can be built before systemd. The library used at
runtime is still provided by the main systemd package.

That said, the new systemd-libudev package could relatively easily be
extended to also provide a standalone version of systemd-udevd
together with libudev, as an alternative to long-unmaintained eudev
for non-systemd builds.

A combined package for bootstrap and standalone systemd-udevd would
avoid duplication of most options and variables from systemd, at the
cost of complexity in the package makefile. The main point I see in
favor of a separate package is that it could be updated independently
from systemd. I'd appreciate opinions on what's the better option and
why. If a combined package is preferred, I'd want to rename
systemd-libudev to systemd-udev before merge. :-)

Best regards,
Fiona

Fiona Klute (othermo GmbH) (3):
  package/systemd/systemd-libudev: new bootstrap subpackage
  package/lvm2: set unconditional dependency with "=", not "+="
  package/lvm2: depend on libudev if enabled

 package/lvm2/lvm2.mk                          |   5 +-
 package/systemd/Config.in                     |   7 +-
 package/systemd/systemd-libudev/Config.in     |  21 ++
 .../systemd-libudev/systemd-libudev.hash      |   1 +
 .../systemd-libudev/systemd-libudev.mk        | 195 ++++++++++++++++++
 package/systemd/systemd.mk                    |  11 +-
 6 files changed, 232 insertions(+), 8 deletions(-)
 create mode 100644 package/systemd/systemd-libudev/Config.in
 create mode 120000 package/systemd/systemd-libudev/systemd-libudev.hash
 create mode 100644 package/systemd/systemd-libudev/systemd-libudev.mk

-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/3] package/systemd/systemd-libudev: new bootstrap subpackage
  2026-10-02 15:12 [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
@ 2026-10-02 15:12 ` Fiona Klute via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+=" Fiona Klute via buildroot
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-02 15:12 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Norbert Lange, Sen Hastings,
	Fiona Klute (othermo GmbH)

From: "Fiona Klute (othermo GmbH)" <fiona.klute@gmx.de>

Some packages that may be in the dependency chain of systemd
(depending on configuration) depend on libudev, at least for optional
features. An example is lvm2: It needs libudev to allow using udev's
built-in "blkid" implementation, instead of calling "blkid -o udev",
which Busybox's blkid does not support.

However, lvm2 is a dependency of cryptsetup (because it provides
libdevmapper), and cryptsetup is a dependency of systemd if enabled,
creating a loop if the virtual libudev package is provided by the main
systemd package.

Create a bootstrap package for systemd-libudev, which installs only
libudev and its development header and pkgconf file to staging, so
packages that need libudev can be built before systemd. The libudev
installed to the target is still provided by the main systemd package.

Signed-off-by: Fiona Klute (othermo GmbH) <fiona.klute@gmx.de>
---
 package/systemd/Config.in                     |   7 +-
 package/systemd/systemd-libudev/Config.in     |  21 ++
 .../systemd-libudev/systemd-libudev.hash      |   1 +
 .../systemd-libudev/systemd-libudev.mk        | 195 ++++++++++++++++++
 package/systemd/systemd.mk                    |  11 +-
 5 files changed, 228 insertions(+), 7 deletions(-)
 create mode 100644 package/systemd/systemd-libudev/Config.in
 create mode 120000 package/systemd/systemd-libudev/systemd-libudev.hash
 create mode 100644 package/systemd/systemd-libudev/systemd-libudev.mk

diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index 4c19a884b4..75b9a12464 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -26,8 +26,8 @@ menuconfig BR2_PACKAGE_SYSTEMD
 	depends on BR2_HOST_GCC_AT_LEAST_8 # host-systemd
 	select BR2_ROOTFS_MERGED_USR
 	select BR2_ROOTFS_MERGED_BIN
-	select BR2_PACKAGE_HAS_LIBUDEV
 	select BR2_PACKAGE_HAS_UDEV
+	select BR2_PACKAGE_SYSTEMD_LIBUDEV # bootstrap subpackage
 	select BR2_PACKAGE_DBUS if !BR2_PACKAGE_DBUS_BROKER # runtime
 	select BR2_PACKAGE_LIBCAP
 	select BR2_PACKAGE_LIBXCRYPT
@@ -108,9 +108,6 @@ menuconfig BR2_PACKAGE_SYSTEMD
 
 if BR2_PACKAGE_SYSTEMD
 
-config BR2_PACKAGE_PROVIDES_LIBUDEV
-	default "systemd"
-
 config BR2_PACKAGE_PROVIDES_UDEV
 	default "systemd"
 
@@ -636,3 +633,5 @@ config BR2_PACKAGE_SYSTEMD_VMSPAWN
 	  https://www.freedesktop.org/software/systemd/man/systemd-vmspawn.html
 
 endif
+
+source "package/systemd/systemd-libudev/Config.in"
diff --git a/package/systemd/systemd-libudev/Config.in b/package/systemd/systemd-libudev/Config.in
new file mode 100644
index 0000000000..d9c2687500
--- /dev/null
+++ b/package/systemd/systemd-libudev/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_SYSTEMD_LIBUDEV
+	bool
+	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_TOOLCHAIN_HAS_SSP
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
+	select BR2_PACKAGE_HAS_LIBUDEV
+	select BR2_PACKAGE_LIBCAP
+	select BR2_PACKAGE_LIBXCRYPT
+	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBS
+	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
+
+if BR2_PACKAGE_SYSTEMD_LIBUDEV
+
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+	default "systemd-libudev"
+
+endif
diff --git a/package/systemd/systemd-libudev/systemd-libudev.hash b/package/systemd/systemd-libudev/systemd-libudev.hash
new file mode 120000
index 0000000000..c5f620b916
--- /dev/null
+++ b/package/systemd/systemd-libudev/systemd-libudev.hash
@@ -0,0 +1 @@
+../systemd.hash
\ No newline at end of file
diff --git a/package/systemd/systemd-libudev/systemd-libudev.mk b/package/systemd/systemd-libudev/systemd-libudev.mk
new file mode 100644
index 0000000000..b0c9d063ae
--- /dev/null
+++ b/package/systemd/systemd-libudev/systemd-libudev.mk
@@ -0,0 +1,195 @@
+################################################################################
+#
+# systemd-libudev
+#
+################################################################################
+
+# Some packages that may be in the dependency tree of systemd
+# (e.g. lvm2, via cryptsetup) need libudev to build. This package
+# installs libudev only to STAGING_DIR to break the dependency loop.
+SYSTEMD_LIBUDEV_VERSION = $(SYSTEMD_VERSION)
+SYSTEMD_LIBUDEV_SOURCE = $(SYSTEMD_SOURCE)
+SYSTEMD_LIBUDEV_SITE = $(SYSTEMD_SITE)
+SYSTEMD_LIBUDEV_LICENSE = $(SYSTEMD_LICENSE)
+SYSTEMD_LIBUDEV_LICENSE_FILES = $(SYSTEMD_LICENSE_FILES)
+SYSTEMD_LIBUDEV_INSTALL_STAGING = YES
+SYSTEMD_LIBUDEV_INSTALL_TARGET = NO
+SYSTEMD_LIBUDEV_DEPENDENCIES = \
+	$(BR2_COREUTILS_HOST_DEPENDENCY) \
+	host-gperf \
+	host-python-jinja2 \
+	libcap \
+	libxcrypt \
+	util-linux-libs \
+	$(TARGET_NLS_DEPENDENCIES)
+SYSTEMD_LIBUDEV_PROVIDES = libudev
+SYSTEMD_LIBUDEV_CFLAGS = $(SYSTEMD_CFLAGS)
+
+# Disable everything that can be disabled, we only need libudev.
+SYSTEMD_LIBUDEV_CONF_OPTS = \
+	-Dsplit-bin=true \
+	--prefix=/usr \
+	--libdir=lib \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	-Dcreate-log-dirs=false \
+	-Dvcs-tag=false \
+	-Dmode=release \
+	-Dacl=disabled \
+	-Dadm-group=false \
+	-Danalyze=false \
+	-Dapparmor=disabled \
+	-Daudit=disabled \
+	-Dbacklight=false \
+	-Dbinfmt=false \
+	-Dblkid=enabled \
+	-Dbootloader=disabled \
+	-Dbpf-framework=disabled \
+	-Dbzip2=disabled \
+	-Dcoredump=false \
+	-Dcreate-log-dirs=false \
+	-Ddbus-interfaces-dir=no \
+	-Ddbus=disabled \
+	-Ddefault-compression='auto' \
+	-Ddefault-dns-over-tls=no \
+	-Ddefault-dnssec=no \
+	-Ddefault-locale='C.UTF-8' \
+	-Ddefault-user-shell=/bin/sh \
+	-Ddns-over-tls=false \
+	-Defi=false \
+	-Delfutils=disabled \
+	-Denvironment-d=false \
+	-Dfdisk=disabled \
+	-Dfirst-boot-full-preset=false \
+	-Dfirstboot=false \
+	-Dfuzz-tests=false \
+	-Dgcrypt=disabled \
+	-Dglib=disabled \
+	-Dgnutls=disabled \
+	-Dgshadow=false \
+	-Dhibernate=false \
+	-Dhomed=disabled \
+	-Dhostnamed=false \
+	-Dhtml=disabled \
+	-Dhwdb=false \
+	-Didn=false \
+	-Dima=false \
+	-Dimportd=disabled \
+	-Dinitrd=false \
+	-Dinstall-tests=false \
+	-Dipe=false \
+	-Dkernel-install=false \
+	-Dkexec-path=/usr/sbin/kexec \
+	-Dkmod-path=/usr/bin/kmod \
+	-Dldconfig=false \
+	-Dlibarchive=disabled \
+	-Dlibcryptsetup-plugins=disabled \
+	-Dlibcryptsetup=disabled \
+	-Dlibcurl=disabled \
+	-Dlibfido2=disabled \
+	-Dlibidn2=disabled \
+	-Dlibidn=disabled \
+	-Dlibiptc=disabled \
+	-Dlibmount=enabled \
+	-Dloadkeys-path=/usr/bin/loadkeys \
+	-Dlocaled=false \
+	-Dlog-message-verification=disabled \
+	-Dlogind=false \
+	-Dlz4=disabled \
+	-Dmachined=false \
+	-Dman=disabled \
+	-Dmicrohttpd=disabled \
+	-Dmount-path=/usr/bin/mount \
+	-Dmountfsd=false \
+	-Dnetworkd=false \
+	-Dnologin-path=/bin/false \
+	-Dnspawn=disabled \
+	-Dnsresourced=false \
+	-Dnss-myhostname=false \
+	-Dnss-mymachines=disabled \
+	-Dnss-resolve=disabled \
+	-Dnss-systemd=false \
+	-Doomd=false \
+	-Dopenssl=disabled \
+	-Dp11kit=disabled \
+	-Dpam=disabled \
+	-Dpasswdqc=disabled \
+	-Dpcre2=disabled \
+	-Dpolkit=disabled \
+	-Dportabled=false \
+	-Dpstore=false \
+	-Dpwquality=disabled \
+	-Dqrencode=disabled \
+	-Dquotacheck=false \
+	-Drandomseed=false \
+	-Dremote=disabled \
+	-Drepart=disabled \
+	-Dresolve=false \
+	-Drfkill=false \
+	-Dseccomp=disabled \
+	-Dselinux=disabled \
+	-Dsetfont-path=/usr/bin/setfont \
+	-Dsmack=false \
+	-Dstoragetm=false \
+	-Dsulogin-path=/usr/sbin/sulogin \
+	-Dsysext=false \
+	-Dsystem-gid-max=999 \
+	-Dsystem-uid-max=999 \
+	-Dsysupdate=disabled \
+	-Dsysupdated=disabled \
+	-Dsysusers=false \
+	-Dsysvinit-path= \
+	-Dsysvrcnd-path= \
+	-Dtests=false \
+	-Dtimedated=false \
+	-Dtimesyncd=false \
+	-Dtmpfiles=false \
+	-Dtpm2=false \
+	-Dtpm=false \
+	-Dukify=disabled \
+	-Dumount-path=/usr/bin/umount \
+	-Durlify=false \
+	-Duserdb=false \
+	-Dutmp=false \
+	-Dvconsole=false \
+	-Dvmlinux-h=disabled \
+	-Dvmspawn=disabled \
+	-Dwheel-group=false \
+	-Dxdg-autostart=false \
+	-Dxenctrl=disabled \
+	-Dxkbcommon=disabled \
+	-Dxz=disabled \
+	-Dzlib=disabled \
+	-Dzstd=disabled
+
+ifneq ($(SYSTEMD_FALLBACK_HOSTNAME),)
+SYSTEMD_LIBUDEV_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME)
+endif
+
+ifeq ($(BR2_PACKAGE_ACL),y)
+SYSTEMD_LIBUDEV_DEPENDENCIES += acl
+SYSTEMD_LIBUDEV_CONF_OPTS += -Dacl=enabled
+else
+SYSTEMD_LIBUDEV_CONF_OPTS += -Dacl=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_KMOD),y)
+SYSTEMD_LIBUDEV_DEPENDENCIES += kmod
+SYSTEMD_LIBUDEV_CONF_OPTS += -Dkmod=enabled
+else
+SYSTEMD_LIBUDEV_CONF_OPTS += -Dkmod=disabled
+endif
+
+# Build only libudev, libudev.pc is not part of the pre-defined
+# target.
+SYSTEMD_LIBUDEV_NINJA_OPTS = libudev src/libudev/libudev.pc
+
+define SYSTEMD_LIBUDEV_INSTALL_STAGING_CMDS
+	$(HOST_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(HOST_DIR)/bin/meson install -C $(@D)/buildroot-build --no-rebuild --tags libudev
+	$(INSTALL) -m 0644 -D $(@D)/src/libudev/libudev.h \
+		$(STAGING_DIR)/usr/include/libudev.h
+	$(INSTALL) -m 0644 -D $(@D)/buildroot-build/src/libudev/libudev.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/libudev.pc
+endef
+
+$(eval $(meson-package))
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 290c2f1307..d122bf8229 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -10,8 +10,10 @@
 # - If yes, propagate the dependencies to BR2_INIT_SYSTEMD
 # - If the required kernel options have changed, update the Config.in
 #   help text and the list of KCONFIG_ENABLE_OPT.
-# - Check if there are new meson_options. Make sure all options are set
-#   explicitly (usually to default value).
+# - Check if there are new meson_options. Make sure all options are
+#   set explicitly (usually to default value). Same in
+#   package/systemd/systemd-libudev, except options not needed for
+#   libudev should be disabled.
 # - If there are new services:
 #   - create new options for them (if they really are optional);
 #   - create a new _USER if necessary;
@@ -58,11 +60,12 @@ SYSTEMD_DEPENDENCIES = \
 	libcap \
 	libxcrypt \
 	util-linux-libs \
+	systemd-libudev \
 	$(TARGET_NLS_DEPENDENCIES)
 
 SYSTEMD_SELINUX_MODULES = systemd udev xdg
 
-SYSTEMD_PROVIDES = libudev udev
+SYSTEMD_PROVIDES = udev
 
 SYSTEMD_CONF_OPTS += \
 	-Dcreate-log-dirs=false \
@@ -1052,3 +1055,5 @@ HOST_SYSTEMD_POST_INSTALL_HOOKS += HOST_SYSTEMD_FIX_RPATH
 
 $(eval $(meson-package))
 $(eval $(host-meson-package))
+
+include package/systemd/systemd-libudev/systemd-libudev.mk
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+="
  2026-10-02 15:12 [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 1/3] package/systemd/systemd-libudev: new bootstrap subpackage Fiona Klute via buildroot
@ 2026-10-02 15:12 ` Fiona Klute via buildroot
  2026-10-02 19:36   ` Thomas Petazzoni via buildroot
  2026-10-10  9:24   ` Thomas Perale via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 3/3] package/lvm2: depend on libudev if enabled Fiona Klute via buildroot
  2026-10-05 11:56 ` [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
  3 siblings, 2 replies; 7+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-02 15:12 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Norbert Lange, Sen Hastings,
	Fiona Klute (othermo GmbH)

From: "Fiona Klute (othermo GmbH)" <fiona.klute@gmx.de>

This is a simple style fix.

Signed-off-by: Fiona Klute (othermo GmbH) <fiona.klute@gmx.de>
---
This patch could also be applied without the rest of the series, no
functional change.

 package/lvm2/lvm2.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk
index 8db1899ed4..21fd5134c1 100644
--- a/package/lvm2/lvm2.mk
+++ b/package/lvm2/lvm2.mk
@@ -25,7 +25,7 @@ LVM2_CONF_OPTS += \
 	--disable-nls \
 	--with-symvers=no
 
-LVM2_DEPENDENCIES += host-pkgconf
+LVM2_DEPENDENCIES = host-pkgconf
 
 # LVM2 uses autoconf, but not automake, and the build system does not
 # take into account the toolchain passed at configure time.
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 3/3] package/lvm2: depend on libudev if enabled
  2026-10-02 15:12 [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 1/3] package/systemd/systemd-libudev: new bootstrap subpackage Fiona Klute via buildroot
  2026-10-02 15:12 ` [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+=" Fiona Klute via buildroot
@ 2026-10-02 15:12 ` Fiona Klute via buildroot
  2026-10-05 11:56 ` [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
  3 siblings, 0 replies; 7+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-02 15:12 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Norbert Lange, Sen Hastings,
	Fiona Klute (othermo GmbH)

From: "Fiona Klute (othermo GmbH)" <fiona.klute@gmx.de>

If a sufficiently new libudev (>= 176, so actually pretty old) is
found, the udev rules installed by lvm2 request the built-in blkid
implementation of udev, instead of calling "blkid -o udev", which
Busybox's blkid does not provide. A practical result of this is that
systemd never considers device-mapper block devices as ready (seen
with dm-crypt and dm-verity) when Busybox blkid is used. So depend on
libudev if it is part of the build.

Signed-off-by: Fiona Klute (othermo GmbH) <fiona.klute@gmx.de>
---
 package/lvm2/lvm2.mk | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk
index 21fd5134c1..2656d81716 100644
--- a/package/lvm2/lvm2.mk
+++ b/package/lvm2/lvm2.mk
@@ -39,6 +39,9 @@ LVM2_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR)
 
 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
 LVM2_CONF_OPTS += --enable-udev_rules
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+LVM2_DEPENDENCIES += libudev
+endif
 endif
 
 ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+="
  2026-10-02 15:12 ` [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+=" Fiona Klute via buildroot
@ 2026-10-02 19:36   ` Thomas Petazzoni via buildroot
  2026-10-10  9:24   ` Thomas Perale via buildroot
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-02 19:36 UTC (permalink / raw)
  To: Fiona Klute; +Cc: buildroot, Eric Le Bihan, Norbert Lange, Sen Hastings

On Fri, Oct 02, 2026 at 05:12:25PM +0200, Fiona Klute via buildroot wrote:
> From: "Fiona Klute (othermo GmbH)" <fiona.klute@gmx.de>
> 
> This is a simple style fix.
> 
> Signed-off-by: Fiona Klute (othermo GmbH) <fiona.klute@gmx.de>

Applied to master, thanks!

Best regards,

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules
  2026-10-02 15:12 [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
                   ` (2 preceding siblings ...)
  2026-10-02 15:12 ` [Buildroot] [PATCH 3/3] package/lvm2: depend on libudev if enabled Fiona Klute via buildroot
@ 2026-10-05 11:56 ` Fiona Klute via buildroot
  3 siblings, 0 replies; 7+ messages in thread
From: Fiona Klute via buildroot @ 2026-10-05 11:56 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Norbert Lange, Sen Hastings, Peter Seiderer

I hadn't seen that a new eudev release has been made on 2026-09-27 when 
I sent this series, and it's now in Buildroot (since 
f6c2c6a086ae1a5857f99514324ebf4038dab31a, thanks Peter!). So maybe a 
standalone systemd-udevd option isn't needed after all, assuming eudev 
will be maintained upstream. If anyone's interested in it anyway I'd 
still want to make sure these patches aren't in the way, otherwise just 
the bootstrap (patches as they are) should be enough to fix 
dm-crypt/verity with systemd. :-)

Best regards,
Fiona

Am 02.10.26 um 17:12 schrieb Fiona Klute via buildroot:
> Hi everyone,
> 
> this series adds a bootstrap package for libudev from systemd. The
> reason is that some packages that may be in the dependency chain of
> systemd (depending on configuration) depend on libudev, at least for
> optional features.
> 
> An example is lvm2: It needs libudev to allow using udev's built-in
> "blkid" implementation instead of calling "blkid -o udev", which
> Busybox's blkid does not support. The issue I saw with Busybox blkid
> is that systemd never considered device-mapper block devices as ready
> (seen with dm-crypt and dm-verity). Setting
> BR2_PACKAGE_UTIL_LINUX_BINARIES=y is a workaround, but shouldn't be
> needed when udev has a built-in for that purpose.
> 
> Unfortunately adding a dependency on libudev to lvm2 creates a
> dependency loop if cryptsetup is also enabled: lvm2 -> systemd
> (libudev) -> cryptsetup -> lvm2 (libdevmapper). The bootstrap package
> breaks the loop by providing libudev from a build with minimal
> options, so lvm2 can be built before systemd. The library used at
> runtime is still provided by the main systemd package.
> 
> That said, the new systemd-libudev package could relatively easily be
> extended to also provide a standalone version of systemd-udevd
> together with libudev, as an alternative to long-unmaintained eudev
> for non-systemd builds.
> 
> A combined package for bootstrap and standalone systemd-udevd would
> avoid duplication of most options and variables from systemd, at the
> cost of complexity in the package makefile. The main point I see in
> favor of a separate package is that it could be updated independently
> from systemd. I'd appreciate opinions on what's the better option and
> why. If a combined package is preferred, I'd want to rename
> systemd-libudev to systemd-udev before merge. :-)
> 
> Best regards,
> Fiona
> 
> Fiona Klute (othermo GmbH) (3):
>    package/systemd/systemd-libudev: new bootstrap subpackage
>    package/lvm2: set unconditional dependency with "=", not "+="
>    package/lvm2: depend on libudev if enabled
> 
>   package/lvm2/lvm2.mk                          |   5 +-
>   package/systemd/Config.in                     |   7 +-
>   package/systemd/systemd-libudev/Config.in     |  21 ++
>   .../systemd-libudev/systemd-libudev.hash      |   1 +
>   .../systemd-libudev/systemd-libudev.mk        | 195 ++++++++++++++++++
>   package/systemd/systemd.mk                    |  11 +-
>   6 files changed, 232 insertions(+), 8 deletions(-)
>   create mode 100644 package/systemd/systemd-libudev/Config.in
>   create mode 120000 package/systemd/systemd-libudev/systemd-libudev.hash
>   create mode 100644 package/systemd/systemd-libudev/systemd-libudev.mk
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+="
  2026-10-02 15:12 ` [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+=" Fiona Klute via buildroot
  2026-10-02 19:36   ` Thomas Petazzoni via buildroot
@ 2026-10-10  9:24   ` Thomas Perale via buildroot
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Perale via buildroot @ 2026-10-10  9:24 UTC (permalink / raw)
  To: Fiona Klute; +Cc: Thomas Perale, buildroot

In reply of:
> This is a simple style fix.
> 
> Signed-off-by: Fiona Klute (othermo GmbH) <fiona.klute@gmx.de>

Applied to 2025.02.x & 2026.08.x. Thanks

> ---
> This patch could also be applied without the rest of the series, no
> functional change.
> 
>  package/lvm2/lvm2.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk
> index 8db1899ed4..21fd5134c1 100644
> --- a/package/lvm2/lvm2.mk
> +++ b/package/lvm2/lvm2.mk
> @@ -25,7 +25,7 @@ LVM2_CONF_OPTS += \
>  	--disable-nls \
>  	--with-symvers=no
>  
> -LVM2_DEPENDENCIES += host-pkgconf
> +LVM2_DEPENDENCIES = host-pkgconf
>  
>  # LVM2 uses autoconf, but not automake, and the build system does not
>  # take into account the toolchain passed at configure time.
> -- 
> 2.55.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-10-10  9:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-02 15:12 [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot
2026-10-02 15:12 ` [Buildroot] [PATCH 1/3] package/systemd/systemd-libudev: new bootstrap subpackage Fiona Klute via buildroot
2026-10-02 15:12 ` [Buildroot] [PATCH 2/3] package/lvm2: set unconditional dependency with "=", not "+=" Fiona Klute via buildroot
2026-10-02 19:36   ` Thomas Petazzoni via buildroot
2026-10-10  9:24   ` Thomas Perale via buildroot
2026-10-02 15:12 ` [Buildroot] [PATCH 3/3] package/lvm2: depend on libudev if enabled Fiona Klute via buildroot
2026-10-05 11:56 ` [Buildroot] [PATCH 0/3] Bootstrap package for libudev to fix device-mapper rules Fiona Klute via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox