similarity index 100%
rename from meta/recipes-core/systemd/systemd-boot-native_261.2.bb
rename to meta/recipes-core/systemd/systemd-boot-native_261.3.bb
similarity index 100%
rename from meta/recipes-core/systemd/systemd-boot_261.2.bb
rename to meta/recipes-core/systemd/systemd-boot_261.3.bb
similarity index 100%
rename from meta/recipes-core/systemd/systemd-tools-native_261.2.bb
rename to meta/recipes-core/systemd/systemd-tools-native_261.3.bb
@@ -15,7 +15,7 @@ LICENSE:libsystemd = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=c09786363500a9acc29b147e6e72d2c6 \
file://LICENSE.LGPL2.1;md5=be0aaf4a380f73f7e00b420a007368f2"
-SRCREV = "4925d9f07fc697efccd98a93046ff535b8832445"
+SRCREV = "3255daee1572366b74fe92f002a3d60ecbb27103"
SRCBRANCH = "v261-stable"
SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH};tag=v${PV}"
@@ -1,8 +1,8 @@
-From b1ab58d3b4a8164e5978409706d6769f5cfde404 Mon Sep 17 00:00:00 2001
+From 451af4755f0c1da552498682d910f4f4c5209639 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Thu, 21 Feb 2019 16:23:24 +0800
-Subject: [PATCH 01/16] binfmt: Don't install dependency links at install time
- for the binfmt services
+Subject: [PATCH] binfmt: Don't install dependency links at install time for
+ the binfmt services
use [Install] blocks so that they get created when the service is enabled
like a traditional service.
@@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/units/meson.build b/units/meson.build
-index 4f47a3b2bd..237870025b 100644
+index 27d8ef2f72..864caa44bb 100644
--- a/units/meson.build
+++ b/units/meson.build
-@@ -154,7 +154,6 @@ units = [
+@@ -168,7 +168,6 @@ units = [
{
'file' : 'proc-sys-fs-binfmt_misc.automount',
'conditions' : ['ENABLE_BINFMT'],
@@ -36,7 +36,7 @@ index 4f47a3b2bd..237870025b 100644
},
{
'file' : 'proc-sys-fs-binfmt_misc.mount',
-@@ -263,7 +262,6 @@ units = [
+@@ -279,7 +278,6 @@ units = [
{
'file' : 'systemd-binfmt.service.in',
'conditions' : ['ENABLE_BINFMT'],
@@ -74,6 +74,3 @@ index 318bf8efc2..6ef684861d 100644
+
+[Install]
+WantedBy=sysinit.target
-2.34.1
-
@@ -1,4 +1,4 @@
-From a7f6a296707642d05463aec22ea3dfce7d06c989 Mon Sep 17 00:00:00 2001
+From 0d4a5976056387ff3801fdb7f53e6d0760df0475 Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <pkj@axis.com>
Date: Tue, 21 Jan 2025 05:02:00 +0100
Subject: [PATCH] Do not create /var/log/README
@@ -15,7 +15,7 @@ Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
1 file changed, 3 deletions(-)
diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in
-index cdef21fa9b..7890abcdef 100644
+index 7036c12b7c..80120b04b4 100644
--- a/tmpfiles.d/legacy.conf.in
+++ b/tmpfiles.d/legacy.conf.in
@@ -13,6 +13,3 @@
@@ -25,5 +25,3 @@ index cdef21fa9b..7890abcdef 100644
-{% if CREATE_LOG_DIRS %}
-L$ /var/log/README - - - - ../..{{DOC_DIR}}/README.logs
-{% endif %}
-2.34.1
@@ -1,6 +1,6 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From 4f04acacb42d410d7002cae3e2bb6c51d47331d6 Mon Sep 17 00:00:00 2001
From: Daniel Turull <daniel.turull@ericsson.com>
-Date: Mon, 23 Jun 2026 12:00:00 +0200
+Date: Tue, 23 Jun 2026 12:00:00 +0200
Subject: [PATCH] Handle missing STATX_MNT_ID on older kernels
On hosts lacking STATX_MNT_ID (kernel < 5.8, e.g. RHEL 8), native tools
@@ -22,24 +22,55 @@ Upstream-Status: Inappropriate [oe specific]
Assisted-by: kiro:claude-opus-4.6
Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
---
- src/basic/chase.c | 20 ++++++++++++++-
- src/basic/fd-util.c | 63 +++++++++++++++++++++++++++++++++++++++++++--
+ src/basic/chase.c | 21 +++++++++++++++-
+ src/basic/fd-util.c | 61 +++++++++++++++++++++++++++++++++++++++++++--
src/basic/fd-util.h | 1 +
- 3 files changed, 82 insertions(+), 2 deletions(-)
+ 3 files changed, 80 insertions(+), 3 deletions(-)
---- a/src/basic/fd-util.h 2026-06-25 14:01:12.009875526 +0200
-+++ b/src/basic/fd-util.h 2026-06-25 14:01:20.909060415 +0200
-@@ -188,6 +188,7 @@ static inline int dir_fd_is_root_or_cwd(
- }
-
- int fds_inode_and_mount_same(int fd1, int fd2);
-+int fd_get_mount_id(int fd, uint64_t *ret);
+diff --git a/src/basic/chase.c b/src/basic/chase.c
+index 23a523798e..08ef95b3dd 100644
+--- a/src/basic/chase.c
++++ b/src/basic/chase.c
+@@ -40,7 +40,9 @@
+ (CHASE_MUST_BE_DIRECTORY|CHASE_MUST_BE_REGULAR|CHASE_MUST_BE_SOCKET)
- int resolve_xat_fdroot(int *fd, const char **path, char **ret_buffer);
+ static int chase_statx(int fd, struct statx *ret) {
+- return xstatx_full(fd,
++ int r;
++
++ r = xstatx_full(fd,
+ /* path= */ NULL,
+ /* statx_flags= */ 0,
+ XSTATX_MNT_ID_BEST,
+@@ -48,6 +50,23 @@ static int chase_statx(int fd, struct statx *ret) {
+ /* optional_mask= */ 0,
+ /* mandatory_attributes= */ 0,
+ ret);
++ if (r == -EUNATCH) {
++ uint64_t mnt_id;
++
++ /* Kernel lacks STATX_MNT_ID; fall back to /proc/self/fdinfo. */
++ r = xstatx(fd, /* path= */ NULL, /* statx_flags= */ 0,
++ STATX_TYPE|STATX_UID|STATX_INO,
++ ret);
++ if (r < 0)
++ return r;
++ r = fd_get_mount_id(fd, &mnt_id);
++ if (r < 0)
++ return r;
++ ret->stx_mnt_id = mnt_id;
++ ret->stx_mask |= STATX_MNT_ID;
++ }
++
++ return r;
+ }
---- a/src/basic/fd-util.c 2026-06-25 14:01:12.011875567 +0200
-+++ b/src/basic/fd-util.c 2026-06-25 14:01:40.007456905 +0200
-@@ -1082,6 +1082,38 @@ int path_is_root_at(int dir_fd, const ch
+ static int chase_openat2(int root_fd, int dir_fd, const char *path, ChaseFlags chase_flags) {
+diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c
+index c6e78c59b6..7f33d900e5 100644
+--- a/src/basic/fd-util.c
++++ b/src/basic/fd-util.c
+@@ -1082,6 +1082,38 @@ int path_is_root_at(int dir_fd, const char *path) {
return fds_inode_and_mount_same(dir_fd, XAT_FDROOT);
}
@@ -78,7 +109,7 @@ Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
int fds_inode_and_mount_same(int fd1, int fd2) {
struct statx sx1, sx2;
int r;
-@@ -1092,7 +1124,20 @@ int fds_inode_and_mount_same(int fd1, in
+@@ -1092,7 +1124,20 @@ int fds_inode_and_mount_same(int fd1, int fd2) {
r = xstatx(fd1, /* path = */ NULL, AT_EMPTY_PATH,
STATX_TYPE|STATX_INO|STATX_MNT_ID,
&sx1);
@@ -100,7 +131,7 @@ Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
return r;
if (fd1 == fd2) /* Shortcut things if fds are the same (only after validating the fd) */
-@@ -1101,7 +1146,19 @@ int fds_inode_and_mount_same(int fd1, in
+@@ -1101,7 +1146,19 @@ int fds_inode_and_mount_same(int fd1, int fd2) {
r = xstatx(fd2, /* path = */ NULL, AT_EMPTY_PATH,
STATX_TYPE|STATX_INO|STATX_MNT_ID,
&sx2);
@@ -121,40 +152,15 @@ Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
return r;
r = statx_mount_same(&sx1, &sx2);
---- a/src/basic/chase.c 2026-06-25 14:01:12.013875609 +0200
-+++ b/src/basic/chase.c 2026-06-25 14:01:47.117604514 +0200
-@@ -40,7 +40,9 @@
- (CHASE_MUST_BE_DIRECTORY|CHASE_MUST_BE_REGULAR|CHASE_MUST_BE_SOCKET)
-
- static int chase_statx(int fd, struct statx *ret) {
-- return xstatx_full(fd,
-+ int r;
-+
-+ r = xstatx_full(fd,
- /* path= */ NULL,
- /* statx_flags= */ 0,
- XSTATX_MNT_ID_BEST,
-@@ -48,6 +50,23 @@ static int chase_statx(int fd, struct st
- /* optional_mask= */ 0,
- /* mandatory_attributes= */ 0,
- ret);
-+ if (r == -EUNATCH) {
-+ uint64_t mnt_id;
-+
-+ /* Kernel lacks STATX_MNT_ID; fall back to /proc/self/fdinfo. */
-+ r = xstatx(fd, /* path= */ NULL, /* statx_flags= */ 0,
-+ STATX_TYPE|STATX_UID|STATX_INO,
-+ ret);
-+ if (r < 0)
-+ return r;
-+ r = fd_get_mount_id(fd, &mnt_id);
-+ if (r < 0)
-+ return r;
-+ ret->stx_mnt_id = mnt_id;
-+ ret->stx_mask |= STATX_MNT_ID;
-+ }
-+
-+ return r;
+diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h
+index 86bddb6dac..34370c8943 100644
+--- a/src/basic/fd-util.h
++++ b/src/basic/fd-util.h
+@@ -188,6 +188,7 @@ static inline int dir_fd_is_root_or_cwd(int dir_fd) {
}
- static int chase_openat2(int root_fd, int dir_fd, const char *path, ChaseFlags chase_flags) {
+ int fds_inode_and_mount_same(int fd1, int fd2);
++int fd_get_mount_id(int fd, uint64_t *ret);
+
+ int resolve_xat_fdroot(int *fd, const char **path, char **ret_buffer);
+
deleted file mode 100644
@@ -1,59 +0,0 @@
-From a019396d2c5bc1adb6b044e7784a30b7187f6fbd Mon Sep 17 00:00:00 2001
-From: Luca Boccassi <luca.boccassi@gmail.com>
-Date: Wed, 2 Sep 2026 20:32:51 +0100
-Subject: [PATCH] tools: fix building manpages with lxml 6.1.3
-
-manpages build fails on Arch with new lxml:
-
-Traceback (most recent call last):
- File "/work/src/tools/make-directive-index.py", line 169, in make_page
- _extract_directives(directive_groups, formatting, page)
- ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/work/src/tools/make-directive-index.py", line 18, in _extract_directives
- t = xml_parse(page)
- File "/work/src/tools/xml_helper.py", line 25, in xml_parse
- doc = tree.parse(page, _parser)
- File "src/lxml/etree.pyx", line 3717, in lxml.etree.parse
- File "src/lxml/parser.pxi", line 2045, in lxml.etree._parseDocument
- File "src/lxml/parser.pxi", line 2071, in lxml.etree._parseDocumentFromURL
- File "src/lxml/parser.pxi", line 1962, in lxml.etree._parseDocFromFile
- File "src/lxml/parser.pxi", line 1231, in lxml.etree._BaseParser._parseDocFromFile
- File "src/lxml/parser.pxi", line 647, in lxml.etree._ParserContext._handleParseResultDoc
- File "src/lxml/parser.pxi", line 765, in lxml.etree._handleParseResult
- File "src/lxml/parser.pxi", line 689, in lxml.etree._raiseParseError
- File "../src/man/hostname.xml", line 5
-lxml.etree.XMLSyntaxError: Entity 'entities' not defined, line 5, column 11
-
-The above exception was the direct cause of the following exception:
-
-Traceback (most recent call last):
- File "/work/src/tools/make-directive-index.py", line 180, in <module>
- _xml = make_page(_template_path, _xml_files)
- File "/work/src/tools/make-directive-index.py", line 171, in make_page
- raise ValueError('failed to process ' + page) from e
-ValueError: failed to process ../src/man/hostname.xml
-
-Relying on XMLParser() defaults leaves the external parameter entity
-used to load custom-entities.ent unresolved. Request entity resolution explicitly.
-
-Follow-up for 1a13e31d275430ffba713c8a68ee7f22093c29e0
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/commit/a019396d2c5bc1adb6b044e7784a30b7187f6fbd]
-
----
- tools/xml_helper.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/xml_helper.py b/tools/xml_helper.py
-index 87c24ab02a0f..e26ca92d9454 100755
---- a/tools/xml_helper.py
-+++ b/tools/xml_helper.py
-@@ -16,7 +16,7 @@ def resolve(self, url, _id, context):
- return None
-
-
--_parser = tree.XMLParser()
-+_parser = tree.XMLParser(resolve_entities=True)
- # pylint: disable=no-member
- _parser.resolvers.add(CustomResolver())
-
similarity index 99%
rename from meta/recipes-core/systemd/systemd_261.2.bb
rename to meta/recipes-core/systemd/systemd_261.3.bb
@@ -27,8 +27,7 @@ CONFLICT_DISTRO_FEATURES += "sysvinit"
# so that systemctl can be used in postinst scripts
PACKAGE_WRITE_DEPS += "systemd-tools-native"
-SRC_URI += " \
- file://touchscreen.rules \
+SRC_URI += "file://touchscreen.rules \
file://00-create-volatile.conf \
file://org.freedesktop.hostname1_no_polkit.conf \
file://00-hostnamed-network-user.conf \
@@ -37,7 +36,6 @@ SRC_URI += " \
file://systemd-pager.sh \
file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
file://0003-Do-not-create-var-log-README.patch \
- file://a019396d2c5bc1adb6b044e7784a30b7187f6fbd.patch \
"
PAM_PLUGINS = " \
- Upgrade systemd-tools-native,systemd-boot,systemd-boot-native inline - Remove tools: fix building manpages with lxml 6.1.3 patch 261 Stable NEWS: https://github.com/systemd/systemd/blob/v261-stable/NEWS Compare Log: https://github.com/systemd/systemd/compare/v261.2...v261.3 Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ..._261.2.bb => systemd-boot-native_261.3.bb} | 0 ...md-boot_261.2.bb => systemd-boot_261.3.bb} | 0 ...261.2.bb => systemd-tools-native_261.3.bb} | 0 meta/recipes-core/systemd/systemd.inc | 2 +- ...tall-dependency-links-at-install-tim.patch | 15 +-- .../0003-Do-not-create-var-log-README.patch | 6 +- ...issing-STATX_MNT_ID-on-older-kernels.patch | 112 +++++++++--------- ...396d2c5bc1adb6b044e7784a30b7187f6fbd.patch | 59 --------- .../{systemd_261.2.bb => systemd_261.3.bb} | 4 +- 9 files changed, 69 insertions(+), 129 deletions(-) rename meta/recipes-core/systemd/{systemd-boot-native_261.2.bb => systemd-boot-native_261.3.bb} (100%) rename meta/recipes-core/systemd/{systemd-boot_261.2.bb => systemd-boot_261.3.bb} (100%) rename meta/recipes-core/systemd/{systemd-tools-native_261.2.bb => systemd-tools-native_261.3.bb} (100%) delete mode 100644 meta/recipes-core/systemd/systemd/a019396d2c5bc1adb6b044e7784a30b7187f6fbd.patch rename meta/recipes-core/systemd/{systemd_261.2.bb => systemd_261.3.bb} (99%)