diff --git a/package/systemd/0001-src-basic-missing_loop.h-fix-missing-LOOP_SET_BLOCK_.patch b/package/systemd/0001-src-basic-missing_loop.h-fix-missing-LOOP_SET_BLOCK_.patch new file mode 100644 index 0000000000..7d520f81d4 --- /dev/null +++ b/package/systemd/0001-src-basic-missing_loop.h-fix-missing-LOOP_SET_BLOCK_.patch @@ -0,0 +1,38 @@ +From e358793a796f8c742af4ea3f4fe398731ca46649 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= +Date: Fri, 14 Jun 2024 14:37:29 +0200 +Subject: [PATCH] src/basic/missing_loop.h: fix missing LOOP_SET_BLOCK_SIZE +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Builds with kernels headers < 4.14 fail with: + +../src/shared/loop-util.c: In function ‘loop_configure_fallback’: +../src/shared/loop-util.c:237:31: error: ‘LOOP_SET_BLOCK_SIZE’ undeclared (first use in this function); did you mean ‘LOOP_SET_DIRECT_IO’? + if (ioctl(fd, LOOP_SET_BLOCK_SIZE, (unsigned long) c->block_size) < 0) + ^~~~~~~~~~~~~~~~~~~ + LOOP_SET_DIRECT_IO + +Fixes: https://github.com/systemd/systemd/issues/33341 +Upstream: https://github.com/systemd/systemd/commit/56ab1c54497d9fac74380ff9e11aaf931a917d2b +Signed-off-by: Raphaël Mélotte +--- + src/basic/missing_loop.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/basic/missing_loop.h b/src/basic/missing_loop.h +index 7141544b64..b1505f678b 100644 +--- a/src/basic/missing_loop.h ++++ b/src/basic/missing_loop.h +@@ -22,3 +22,7 @@ struct loop_config { + #ifndef LOOP_SET_STATUS_SETTABLE_FLAGS + #define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO) + #endif ++ ++#ifndef LOOP_SET_BLOCK_SIZE ++# define LOOP_SET_BLOCK_SIZE 0x4C09 ++#endif +-- +2.25.1 + diff --git a/package/systemd/Config.in b/package/systemd/Config.in index a94e9b73b8..82c0e30474 100644 --- a/package/systemd/Config.in +++ b/package/systemd/Config.in @@ -22,7 +22,7 @@ menuconfig BR2_PACKAGE_SYSTEMD depends on !BR2_STATIC_LIBS # kmod depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_SSP - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 # LOOP_SET_BLOCK_SIZE + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd select BR2_PACKAGE_HAS_UDEV @@ -239,6 +239,7 @@ config BR2_PACKAGE_SYSTEMD_HOMED depends on BR2_USE_MMU # cryptsetup -> lvm2 depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key select BR2_PACKAGE_CRYPTSETUP select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL @@ -249,11 +250,11 @@ config BR2_PACKAGE_SYSTEMD_HOMED https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html -comment "homed support needs a toolchain w/ threads, dynamic library" +comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ - BR2_STATIC_LIBS + BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_PACKAGE_SYSTEMD_HOSTNAMED bool "enable hostname daemon" diff --git a/system/Config.in b/system/Config.in index 3fb17ed1c6..bc0c6eb6bc 100644 --- a/system/Config.in +++ b/system/Config.in @@ -125,19 +125,19 @@ config BR2_INIT_SYSTEMD depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_SSP depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOST_GCC_AT_LEAST_5 select BR2_ROOTFS_MERGED_USR select BR2_PACKAGE_SYSTEMD select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_ROOTFS_SKELETON_DEFAULT -comment "systemd needs a glibc toolchain w/ SSP, headers >= 4.14, host and target gcc >= 5" +comment "systemd needs a glibc toolchain w/ SSP, headers >= 3.15, host and target gcc >= 5" depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_HAS_SSP || \ - !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 || \ + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \ !BR2_HOST_GCC_AT_LEAST_5