Skip to content

libunwind: Backport a fix for -fno-common option to compile - #1

Merged
kraj merged 17 commits into
YoeDistro:dunfellfrom
abandonware:sandbox/rzr/review/master
Dec 8, 2021
Merged

libunwind: Backport a fix for -fno-common option to compile#1
kraj merged 17 commits into
YoeDistro:dunfellfrom
abandonware:sandbox/rzr/review/master

Conversation

@rzr

@rzr rzr commented Dec 1, 2021

Copy link
Copy Markdown

[Khem Raj]
defaults for gcc is to use -fno-common this ensures that it keeps
building with gcc -fno-common

Fixes
src/arm/Ginit.c:60: multiple definition of `_U_dyn_info_list'; mi/.libs/dyn-info-list.o:/usr/src/debug/libunwind/1.4.0-r0/build/src/../../libunwind-1.4.0/src/mi/dyn-info-list.c:28: first defined here

[Philippe Coval]

Change and related patch ported to dunfell branch on 1.3.1 version

Signed-off-by: Khem Raj raj.khem@gmail.com
Signed-off-by: Richard Purdie richard.purdie@linuxfoundation.org
Origin: openembedded@6cd2cf6
Relate-to: libunwind/libunwind#312
Relate-to: https://booting.oniroproject.org/distro/oniro/-/issues/191
Change-Id: If34ea06e365f57b6007e9ea3da8d9d716e4b01cc
Forwarded: https://lists.openembedded.org/g/openembedded-core/message/158932
Last-Update: 2021-11-25
Relate-to: astarte-platform/astarte-device-sdk-rust#20
Signed-off-by: Philippe Coval philippe.coval@huawei.com

@rzr

rzr commented Dec 1, 2021

Copy link
Copy Markdown
Author

This is the same patch I have shared in list, I though it would be useful to have tested here too.

@kraj

kraj commented Dec 1, 2021

Copy link
Copy Markdown

thanks. I usually follow after yocto AB testing.

rzr pushed a commit to abandonware/openembedded-core that referenced this pull request Dec 6, 2021
[Khem Raj]
defaults for gcc is to use -fno-common this ensures that it keeps
building with gcc -fno-common

Fixes
src/arm/Ginit.c:60: multiple definition of `_U_dyn_info_list'; mi/.libs/dyn-info-list.o:/usr/src/debug/libunwind/1.4.0-r0/build/src/../../libunwind-1.4.0/src/mi/dyn-info-list.c:28: first defined here

[Philippe Coval]

Change and related patch ported to dunfell branch on 1.3.1 version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Origin: openembedded@6cd2cf6
Relate-to: libunwind/libunwind#312
Relate-to: https://booting.oniroproject.org/distro/oniro/-/issues/191
Change-Id: If34ea06e365f57b6007e9ea3da8d9d716e4b01cc
Forwarded: https://lists.openembedded.org/g/openembedded-core/message/158932
Last-Update: 2021-11-25
Relate-to: astarte-platform/astarte-device-sdk-rust#20
Relate-to: YoeDistro#1
Signed-off-by: Philippe Coval <philippe.coval@huawei.com>
@rzr
rzr force-pushed the sandbox/rzr/review/master branch from 21fec60 to 1b240db Compare December 6, 2021 10:10
Neetika Singh and others added 17 commits December 6, 2021 04:48
Add patches for below CVE issues:
CVE-2021-27218
CVE-2021-27219
CVE-2021-28153
Link: https://mirrors.ocf.berkeley.edu/ubuntu/pool/main/g/glib2.0/glib2.0_2.64.6-1~ubuntu20.04.3.debian.tar.xz
Also, add regression patchs for CVE-2021-27219.
CVE-2021-27219-reg1-3.patch is not relevant for glib2.0 v2.64

Signed-off-by: Neetika.Singh <Neetika.Singh@kpit.com>
Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com>
Signed-off-by: Ranjitsinh Rathod <ranjitsinhrathod1991@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
An out-of-bounds heap read in unlzma leads to information leak and
denial of service when crafted LZMA-compressed input is decompressed.
This can be triggered by any applet/format that internally supports
LZMA compression.

Reference: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-42374

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
A NULL pointer dereference in Busybox's hush applet leads to denial of service
when processing a crafted shell command, due to missing validation after
a \x03 delimiter character.
This may be used for DoS under very rare conditions of filtered command input.

Reference: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-42376

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Backport a fix for -3972, and whitelist -3968: it isn't valid as it
fixes a bug which was introduced after 8.2.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bec5caa)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Add patch to fix CVE-2021-39537
Link: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/ncurses/patches/Attic/patch-ncurses_tinfo_captoinfo.c?rev=1.1&content-type=text/x-cvsweb-markup

Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com>
Signed-off-by: Ranjitsinh Rathod <ranjitsinhrathod1991@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
It seems like CVE-2021-33928, CVE-2021-33929, CVE-2021-33930 and
CVE-2021-33938 are pointing to same patch as CVE-2021-3200

So add CVE tag inside the patch file which is the remedy for
CVE-2021-33928, CVE-2021-33929, CVE-2021-33930 and CVE-2021-33938

Link:
https://ubuntu.com/security/CVE-2021-3200
https://ubuntu.com/security/CVE-2021-33928
https://ubuntu.com/security/CVE-2021-33929
https://ubuntu.com/security/CVE-2021-33930
https://ubuntu.com/security/CVE-2021-33938

Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com>
Signed-off-by: Ranjitsinh Rathod <ranjitsinhrathod1991@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Notes for BIND 9.11.33

This maintenance release of BIND 9.11 contains no significant changes,
although some minor updates have been made (for example, to eliminate
compiler warnings emitted by GCC 11).

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Notes for BIND 9.11.34

This maintenance release of BIND 9.11 contains no significant changes,
although some minor updates have been made (for example, to fix build
issues on Solaris 11).

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Notes for BIND 9.11.35

Security Fixes

named failed to check the opcode of responses when performing zone refreshes,
stub zone updates, and UPDATE forwarding. This could lead to an assertion
failure under certain conditions and has been addressed by rejecting responses
whose opcode does not match the expected value. [GL #2762]

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Mark goal.upgrade with sltr as targeted

This allows a bugfix in dnf to work

Signed-off-by: Jate Sujjavanich <jatedev@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Keep installed packages in upgrade job

This prevents duplicate identical packages from being reinstalled
with each upgrade

Signed-off-by: Jate Sujjavanich <jatedev@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
[Khem Raj]
defaults for gcc is to use -fno-common this ensures that it keeps
building with gcc -fno-common

Fixes
src/arm/Ginit.c:60: multiple definition of `_U_dyn_info_list'; mi/.libs/dyn-info-list.o:/usr/src/debug/libunwind/1.4.0-r0/build/src/../../libunwind-1.4.0/src/mi/dyn-info-list.c:28: first defined here

[Philippe Coval]

Change and related patch ported to dunfell branch on 1.3.1 version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Origin: openembedded@6cd2cf6
Signed-off-by: Philippe Coval <philippe.coval@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
The code was assuming that the a recipe with only one srcrev wouldn't "name"
it. This isn't the case as the glibc or bzip2 recipes show, you can have
a single srcrev which is named.

We can pull the data from the fetcher and in fact we already have it, we just
need to handle the "default" case and make that code the default for all srcrev
regardless of length.

[YOCTO #14017]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 45ae567)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Fix deprecation warnings about invalid escape sequences.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4354261)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
`googlemock` has been absorbed into the
[googletest](https://github.com/google/googletest) project and is built
and installed from the same source tree.

`googletest` has provided a CMake Config-file Package starting with
GTest 1.8.1. `find_package(GTest ...)` by default dispatches first to
CMake Find Module. Starting with CMake commit
2327b4330cce157d616ff8b611b3e77568d00351 in CMake v3.20.0 the module
dispatches onward to the Config-file Package so that the same targets
are available. In pre v3.20.0 versions of CMake however the Find Module
masks the targets provided by the upstream `GTest` package.

Update `Modules/FindGTest.cmake` to provide the same targets as the
CMake Config-file Package and backwards compatible targets and result
variables.

Signed-off-by: Eero Aaltonen <eero.aaltonen@vaisala.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Dhruva Gole <goledhruva@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8ea1745)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Update URLs to what they actually redirect to.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ec21310)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
rzr pushed a commit to abandonware/openembedded-core that referenced this pull request Dec 7, 2021
[Khem Raj]
defaults for gcc is to use -fno-common this ensures that it keeps
building with gcc -fno-common

Fixes
src/arm/Ginit.c:60: multiple definition of `_U_dyn_info_list'; mi/.libs/dyn-info-list.o:/usr/src/debug/libunwind/1.4.0-r0/build/src/../../libunwind-1.4.0/src/mi/dyn-info-list.c:28: first defined here

[Philippe Coval]

Change and related patch ported to dunfell branch on 1.3.1 version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Origin: openembedded@6cd2cf6
Relate-to: libunwind/libunwind#312
Relate-to: https://booting.oniroproject.org/distro/oniro/-/issues/191
Change-Id: If34ea06e365f57b6007e9ea3da8d9d716e4b01cc
Forwarded: https://lists.openembedded.org/g/openembedded-core/message/158932
Last-Update: 2021-11-25
Relate-to: astarte-platform/astarte-device-sdk-rust#20
Relate-to: YoeDistro#1
Relate-to: https://lists.openembedded.org/g/openembedded-core/message/159140?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2Ccoval%2C20%2C2%2C0%2C87483217
Signed-off-by: Philippe Coval <philippe.coval@huawei.com>
@rzr
rzr force-pushed the sandbox/rzr/review/master branch 2 times, most recently from fad4b04 to f788765 Compare December 8, 2021 22:44
@kraj
kraj merged commit f788765 into YoeDistro:dunfell Dec 8, 2021
kraj pushed a commit that referenced this pull request Jul 8, 2022
- curl-ptest is taking around 200 seconds to execute so
  added curl-ptest to PTESTS_SLOW
- This patch is rework on an existing patch provided
  by Maxin B. John (maxin.john@intel.com)
  https://www.openembedded.org/pipermail/openembedded-core/2017-July/139176.html
- Below is the run log of curl-ptest
  START: ptest-runner
  2022-07-03T15:52
  BEGIN: /usr/lib/curl/ptest
  ********* System characteristics ********
  * curl 7.83.1 (x86_64-poky-linux-gnu)
  * libcurl/7.83.1 OpenSSL/3.0.3 zlib/1.2.12 libidn2/2.3.2
  * Features: alt-svc AsynchDNS Debug HSTS HTTPS-proxy IDN Largefile libz NTLM SSL TLS-SRP UnixSockets
  * Disabled: headers-api
  * Host: qemux86-64
  * System: Linux qemux86-64 5.15.44-yocto-standard #1 SMP PREEMPT Tue May 31 20:28:59 UTC 2022 x86_64 GNU/Linux
  * OS: linux
  * Servers: HTTP-unix
  * Env:
  * Seed: 238593
  *****************************************
  PASS: test 0001 (1   out of 1466, remaining: 25:07, took 1.029s, duration: 00:01)
  PASS: test 0002 (2   out of 1466, remaining: 13:21, took 0.065s, duration: 00:01)
  ...
  ...
  PASS: test 3019 (1460 out of 1466, remaining: 00:00, took 0.012s, duration: 03:16)
  PASS: test 3020 (1461 out of 1466, remaining: 00:00, took 0.011s, duration: 03:16)
  test 3025...The tool set in the test case for this: 'lib3025' does not exist
  TESTDONE: 1280 tests were considered during 197 seconds.
  TESTDONE: 783 tests out of PASS: 783 report: 100%
  DURATION: 202
  END: /usr/lib/curl/ptest
  2022-07-03T15:56
  STOP: ptest-runner
  TOTAL: 1 FAIL: 0
- disable the curl tests that are expected to fail
- remove the generated file configurehelp.pm from curl test beacuse it is causing reproducible build failure.
  this file is used by some curl tests to scan symbols from curl headers. we are anyway not installing curl
  headers and already have disabled those tests.
  [YOCTO #6707]

Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Oct 20, 2022
Backport a patch to fix the following on powerpc64 ABIv2.

root@qemuppc64:~# lttng create trace_session --live -U net://127.0.0.1
Spawning a session daemon
lttng_kretprobes: loading out-of-tree module taints kernel.
BUG: Unable to handle kernel data access on read at 0xfffffffffffffff8
Faulting instruction address: 0xc0000000001f6fd0
Oops: Kernel access of bad area, sig: 11 [#1]
<snip>

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
kraj pushed a commit that referenced this pull request Jan 18, 2023
On master oe, build a qemuppc64 with systemd as default init, when we
use nfs bootup, the kernel might panic due to missing symbol in dynamic
libraries as below:

  hid-generic 0003:0627:0001.0003: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:01.0-3/input0
  /sbin/init: /lib64/libm.so.6: version `XZ_5.0' not found (required by /usr/lib64/libkmod.so.2)
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
  CPU: 0 PID: 1 Comm: init Not tainted 5.15.78-yocto-standard #1
  Call Trace:
  [c000000007443ba0] [c0000000009538d0] dump_stack_lvl+0x74/0xa8 (unreliable)
  [c000000007443be0] [c000000000103524] panic+0x170/0x3cc
  [c000000007443c80] [c00000000010cf64] do_exit+0xb44/0xb50
  [c000000007443d50] [c00000000010d040] do_group_exit+0x60/0xd0
  [c000000007443d90] [c00000000010d0d4] sys_exit_group+0x24/0x30
  [c000000007443db0] [c00000000002cfd4] system_call_exception+0x194/0x2f0
  [c000000007443e10] [c00000000000c2cc] system_call_common+0xec/0x250
  --- interrupt: c00 at 0x7fff9ed9e840
  NIP:  00007fff9ed9e840 LR: 00007fff9ed7da20 CTR: 0000000000000000
  REGS: c000000007443e80 TRAP: 0c00   Not tainted (5.15.78-yocto-standard)
  MSR:  800000000280f033 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI,LE>  CR: 24022442  XER: 00000000

One or more of the libraries systemd depends on failed to load due to
unresolved symbols/functions.  This was intermittent - with a failure
rate estimated between 5% and 30%.

After checking the code, this issue happens on gcc 12, kirkstone is using
gcc 11 works well, with both using the exact same v5.15.84 kernel commit.

There is a kernel fix from upstream [1], they changed the rsize / wsize
to a multiple of PAGE_SIZE, when we applied this patch, the qemuppc64's
default r/wsize went from 4096 to 524288.But the qemuppc64 doesn't have
its own linux-yocto kernel branch, so apply this change might cause
regression with other platforms which share branch with qemuppc64.

So, we added an extra option for nfs rootfs, and set the qemuppc64 default
r/w size to 524288 to line up with the kernel fix[1].

Yocto did a similar thing in the distant past[2] - prior to boot-arg
adjustments existing - by allowing a Kconfig to set the defaults on
nfsboot, in order to work around hardware limitations.

Reference:
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=940261a195080cf
[2] https://git.yoctoproject.org/linux-yocto-4.1/commit/?h=standard/base&id=a96cfd98add95

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
kraj pushed a commit that referenced this pull request Jan 20, 2023
On master oe, build a qemuppc64 with systemd as default init, when we
use nfs bootup, the kernel might panic due to missing symbol in dynamic
libraries as below:

  hid-generic 0003:0627:0001.0003: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:01.0-3/input0
  /sbin/init: /lib64/libm.so.6: version `XZ_5.0' not found (required by /usr/lib64/libkmod.so.2)
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
  CPU: 0 PID: 1 Comm: init Not tainted 5.15.78-yocto-standard #1
  Call Trace:
  [c000000007443ba0] [c0000000009538d0] dump_stack_lvl+0x74/0xa8 (unreliable)
  [c000000007443be0] [c000000000103524] panic+0x170/0x3cc
  [c000000007443c80] [c00000000010cf64] do_exit+0xb44/0xb50
  [c000000007443d50] [c00000000010d040] do_group_exit+0x60/0xd0
  [c000000007443d90] [c00000000010d0d4] sys_exit_group+0x24/0x30
  [c000000007443db0] [c00000000002cfd4] system_call_exception+0x194/0x2f0
  [c000000007443e10] [c00000000000c2cc] system_call_common+0xec/0x250
  --- interrupt: c00 at 0x7fff9ed9e840
  NIP:  00007fff9ed9e840 LR: 00007fff9ed7da20 CTR: 0000000000000000
  REGS: c000000007443e80 TRAP: 0c00   Not tainted (5.15.78-yocto-standard)
  MSR:  800000000280f033 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI,LE>  CR: 24022442  XER: 00000000

One or more of the libraries systemd depends on failed to load due to
unresolved symbols/functions.  This was intermittent - with a failure
rate estimated between 5% and 30%.

After checking the code, this issue happens on gcc 12, kirkstone is using
gcc 11 works well, with both using the exact same v5.15.84 kernel commit.

There is a kernel fix from upstream [1], they changed the rsize / wsize
to a multiple of PAGE_SIZE, when we applied this patch, the qemuppc64's
default r/wsize went from 4096 to 524288.But the qemuppc64 doesn't have
its own linux-yocto kernel branch, so apply this change might cause
regression with other platforms which share branch with qemuppc64.

So, we added an extra option for nfs rootfs, and set the qemuppc64 default
r/w size to 524288 to line up with the kernel fix[1].

Yocto did a similar thing in the distant past[2] - prior to boot-arg
adjustments existing - by allowing a Kconfig to set the defaults on
nfsboot, in order to work around hardware limitations.

Reference:
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=940261a195080cf
[2] https://git.yoctoproject.org/linux-yocto-4.1/commit/?h=standard/base&id=a96cfd98add95

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
kraj pushed a commit that referenced this pull request Jan 21, 2023
On master oe, build a qemuppc64 with systemd as default init, when we
use nfs bootup, the kernel might panic due to missing symbol in dynamic
libraries as below:

  hid-generic 0003:0627:0001.0003: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:01.0-3/input0
  /sbin/init: /lib64/libm.so.6: version `XZ_5.0' not found (required by /usr/lib64/libkmod.so.2)
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
  CPU: 0 PID: 1 Comm: init Not tainted 5.15.78-yocto-standard #1
  Call Trace:
  [c000000007443ba0] [c0000000009538d0] dump_stack_lvl+0x74/0xa8 (unreliable)
  [c000000007443be0] [c000000000103524] panic+0x170/0x3cc
  [c000000007443c80] [c00000000010cf64] do_exit+0xb44/0xb50
  [c000000007443d50] [c00000000010d040] do_group_exit+0x60/0xd0
  [c000000007443d90] [c00000000010d0d4] sys_exit_group+0x24/0x30
  [c000000007443db0] [c00000000002cfd4] system_call_exception+0x194/0x2f0
  [c000000007443e10] [c00000000000c2cc] system_call_common+0xec/0x250
  --- interrupt: c00 at 0x7fff9ed9e840
  NIP:  00007fff9ed9e840 LR: 00007fff9ed7da20 CTR: 0000000000000000
  REGS: c000000007443e80 TRAP: 0c00   Not tainted (5.15.78-yocto-standard)
  MSR:  800000000280f033 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI,LE>  CR: 24022442  XER: 00000000

One or more of the libraries systemd depends on failed to load due to
unresolved symbols/functions.  This was intermittent - with a failure
rate estimated between 5% and 30%.

After checking the code, this issue happens on gcc 12, kirkstone is using
gcc 11 works well, with both using the exact same v5.15.84 kernel commit.

There is a kernel fix from upstream [1], they changed the rsize / wsize
to a multiple of PAGE_SIZE, when we applied this patch, the qemuppc64's
default r/wsize went from 4096 to 524288.But the qemuppc64 doesn't have
its own linux-yocto kernel branch, so apply this change might cause
regression with other platforms which share branch with qemuppc64.

So, we added an extra option for nfs rootfs, and set the qemuppc64 default
r/w size to 524288 to line up with the kernel fix[1].

Yocto did a similar thing in the distant past[2] - prior to boot-arg
adjustments existing - by allowing a Kconfig to set the defaults on
nfsboot, in order to work around hardware limitations.

Reference:
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=940261a195080cf
[2] https://git.yoctoproject.org/linux-yocto-4.1/commit/?h=standard/base&id=a96cfd98add95

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
kraj pushed a commit that referenced this pull request Mar 15, 2024
Add --system parameter for useradd to avoid intruducing .bashrc
and .profile under home dir to fix the below error.
 $ bitbake core-image-weston
| DEBUG: Executing python function set_image_size
| DEBUG: 352679.600000 = 271292 * 1.300000
| DEBUG: 455079.600000 = max(352679.600000, 65536)[352679.600000] + 102400
| DEBUG: 455080.000000 = int(455079.600000)
| DEBUG: 455080 = aligned(455080)
| DEBUG: returning 455080
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_tar
| tar: ./home/weston/.bashrc: Unknown file type; file ignored
| tar: ./home/weston/.profile: Unknown file type; file ignored
| tar: Exiting with failure status due to previous errors
| WARNING: /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897:150 exit 1 from '[ $? -eq 1 ]'
| WARNING: Backtrace (BB generated script):
    #1: do_image_tar, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897, line 150
    #2: main, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897, line 156
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing python function set_image_size
| DEBUG: 352679.600000 = 271292 * 1.300000
| DEBUG: 455079.600000 = max(352679.600000, 65536)[352679.600000] + 102400
| DEBUG: 455080.000000 = int(455079.600000)
| DEBUG: 455080 = aligned(455080)
| DEBUG: returning 455080
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_ext4
| DEBUG: Executing dd if=/dev/zero of=/buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.ext4 seek=455080 count=0 bs=1024
| 0+0 records in
| 0+0 records out
| 0 bytes copied, 0.00136946 s, 0.0 kB/s
| DEBUG: Actual Rootfs size:  268184    /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs
| DEBUG: Actual Partition size: 466001920
| DEBUG: Executing mkfs.ext4 -F -i 4096 /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.ext4 -d /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs
| mke2fs 1.47.0 (5-Feb-2023)
| Discarding device blocks: done
| Creating filesystem with 455080 1k blocks and 113792 inodes
| Filesystem UUID: 2031373e-63cd-4711-968b-4023ff7d6a90
| Superblock backups stored on blocks:
|   8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
|
| Allocating group tables: done
| Writing inode tables: done
| Creating journal (8192 blocks): done
| Copying files into the device: __populate_fs: ignoring entry ".bashrc"
| .bashrc: File not found by ext2_lookup while looking up ".bashrc"
| mkfs.ext4: File not found by ext2_lookup while populating file system
| WARNING: /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895:178 exit 1 from 'mkfs.$fstype -F $extra_imagecmd /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.$fstype -d /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs'
| WARNING: Backtrace (BB generated script):
|   #1: oe_mkext234fs, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 178
|   #2: do_image_ext4, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 150
|   #3: main, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 215
ERROR: Task (/buildarea1/test/yocto/poky/meta/recipes-graphics/images/core-image-weston.bb:do_image_ext4) failed with exit code '1'

Before the patch:
$ ls -a tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs/home/weston/
.  ..  .bashrc  .profile

After the patch:
$ ls -a tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs/home/weston/
.  ..

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Mar 16, 2024
Add --system parameter for useradd to avoid intruducing .bashrc
and .profile under home dir to fix the below error.
 $ bitbake core-image-weston
| DEBUG: Executing python function set_image_size
| DEBUG: 352679.600000 = 271292 * 1.300000
| DEBUG: 455079.600000 = max(352679.600000, 65536)[352679.600000] + 102400
| DEBUG: 455080.000000 = int(455079.600000)
| DEBUG: 455080 = aligned(455080)
| DEBUG: returning 455080
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_tar
| tar: ./home/weston/.bashrc: Unknown file type; file ignored
| tar: ./home/weston/.profile: Unknown file type; file ignored
| tar: Exiting with failure status due to previous errors
| WARNING: /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897:150 exit 1 from '[ $? -eq 1 ]'
| WARNING: Backtrace (BB generated script):
    #1: do_image_tar, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897, line 150
    #2: main, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_tar.1972897, line 156
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing python function set_image_size
| DEBUG: 352679.600000 = 271292 * 1.300000
| DEBUG: 455079.600000 = max(352679.600000, 65536)[352679.600000] + 102400
| DEBUG: 455080.000000 = int(455079.600000)
| DEBUG: 455080 = aligned(455080)
| DEBUG: returning 455080
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_ext4
| DEBUG: Executing dd if=/dev/zero of=/buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.ext4 seek=455080 count=0 bs=1024
| 0+0 records in
| 0+0 records out
| 0 bytes copied, 0.00136946 s, 0.0 kB/s
| DEBUG: Actual Rootfs size:  268184    /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs
| DEBUG: Actual Partition size: 466001920
| DEBUG: Executing mkfs.ext4 -F -i 4096 /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.ext4 -d /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs
| mke2fs 1.47.0 (5-Feb-2023)
| Discarding device blocks: done
| Creating filesystem with 455080 1k blocks and 113792 inodes
| Filesystem UUID: 2031373e-63cd-4711-968b-4023ff7d6a90
| Superblock backups stored on blocks:
|   8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
|
| Allocating group tables: done
| Writing inode tables: done
| Creating journal (8192 blocks): done
| Copying files into the device: __populate_fs: ignoring entry ".bashrc"
| .bashrc: File not found by ext2_lookup while looking up ".bashrc"
| mkfs.ext4: File not found by ext2_lookup while populating file system
| WARNING: /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895:178 exit 1 from 'mkfs.$fstype -F $extra_imagecmd /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/deploy-core-image-weston-image-complete/core-image-weston-qemux86-64.rootfs-20240315032140.$fstype -d /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs'
| WARNING: Backtrace (BB generated script):
|   #1: oe_mkext234fs, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 178
|   #2: do_image_ext4, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 150
|   #3: main, /buildarea1/test/yocto/builds/poky-build-weston/tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/temp/run.do_image_ext4.1972895, line 215
ERROR: Task (/buildarea1/test/yocto/poky/meta/recipes-graphics/images/core-image-weston.bb:do_image_ext4) failed with exit code '1'

Before the patch:
$ ls -a tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs/home/weston/
.  ..  .bashrc  .profile

After the patch:
$ ls -a tmp/work/qemux86_64-poky-linux/core-image-weston/1.0/rootfs/home/weston/
.  ..

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 1, 2024
Integrating the following commit(s) to linux-yocto/6.6:

1/1 [
    Author: Bruce Ashfield
    Email: bruce.ashfield@gmail.com
    Subject: cpu/amd: inhibit SMP check for qemux86
    Date: Fri, 28 Jun 2024 12:55:18 -0400

    When booting with kvm enabled on a AMD host, the following
    trace is thrown:

      [    0.084519] ------------[ cut here ]------------
      [    0.084519] WARNING: This combination of AMD processors is not suitable for SMP.
      [    0.084519] WARNING: CPU: 1 PID: 0 at /arch/x86/kernel/cpu/amd.c:341 init_amd+0xaee/0xbcc
      [    0.084519] Modules linked in:
      [    0.084519] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.32-yocto-standard #1
      [    0.084519] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

    This warning is not valid in our configuration and is unnecesarily
    causing issue with debug.

    This has been know for some time (10+ years), but no acceptable
    solutioon has been found upstream:

       https://lists.gnu.org/archive/html/qemu-devel/2010-03/msg01428.html
       https://lkml.org/lkml/2010/3/30/397

    We have a configuration CONFIG_QEMUX86 that has been added for
    situations like this. When that value is defined, we inhibit the
    warning, but leave it as-is for other BSPs.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 1, 2024
Integrating the following commit(s) to linux-yocto/6.6:

1/1 [
    Author: Bruce Ashfield
    Email: bruce.ashfield@gmail.com
    Subject: cpu/amd: inhibit SMP check for qemux86
    Date: Fri, 28 Jun 2024 12:55:18 -0400

    When booting with kvm enabled on a AMD host, the following
    trace is thrown:

      [    0.084519] ------------[ cut here ]------------
      [    0.084519] WARNING: This combination of AMD processors is not suitable for SMP.
      [    0.084519] WARNING: CPU: 1 PID: 0 at /arch/x86/kernel/cpu/amd.c:341 init_amd+0xaee/0xbcc
      [    0.084519] Modules linked in:
      [    0.084519] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.32-yocto-standard #1
      [    0.084519] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

    This warning is not valid in our configuration and is unnecesarily
    causing issue with debug.

    This has been know for some time (10+ years), but no acceptable
    solutioon has been found upstream:

       https://lists.gnu.org/archive/html/qemu-devel/2010-03/msg01428.html
       https://lkml.org/lkml/2010/3/30/397

    We have a configuration CONFIG_QEMUX86 that has been added for
    situations like this. When that value is defined, we inhibit the
    warning, but leave it as-is for other BSPs.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 9, 2024
Integrating the following commit(s) to linux-yocto/6.6:

1/1 [
    Author: Bruce Ashfield
    Email: bruce.ashfield@gmail.com
    Subject: cpu/amd: inhibit SMP check for qemux86
    Date: Fri, 28 Jun 2024 12:55:18 -0400

    When booting with kvm enabled on a AMD host, the following
    trace is thrown:

      [    0.084519] ------------[ cut here ]------------
      [    0.084519] WARNING: This combination of AMD processors is not suitable for SMP.
      [    0.084519] WARNING: CPU: 1 PID: 0 at /arch/x86/kernel/cpu/amd.c:341 init_amd+0xaee/0xbcc
      [    0.084519] Modules linked in:
      [    0.084519] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.32-yocto-standard #1
      [    0.084519] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

    This warning is not valid in our configuration and is unnecesarily
    causing issue with debug.

    This has been know for some time (10+ years), but no acceptable
    solutioon has been found upstream:

       https://lists.gnu.org/archive/html/qemu-devel/2010-03/msg01428.html
       https://lkml.org/lkml/2010/3/30/397

    We have a configuration CONFIG_QEMUX86 that has been added for
    situations like this. When that value is defined, we inhibit the
    warning, but leave it as-is for other BSPs.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f0c0300)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
kraj added a commit that referenced this pull request Aug 25, 2024
Fixes
ERROR: systemd-1_256.5-r0 do_patch: QA Issue: Fuzz detected:

Applying patch 0017-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
patching file src/basic/missing_syscall.h
Hunk #1 succeeded at 20 with fuzz 1.

The issue surfaces when building with musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Sep 7, 2024
In systemd/systemd@924453c
ProtectHome was set to true for systemd-coredump in order to reduce risk, since an attacker could craft a malicious binary in order to compromise systemd-coredump.
At that point the object analysis was done in the main systemd-coredump process.
Because of this systemd-coredump is unable to product symbolicated call-stacks for binaries running under /home ("n/a" is shown instead of function names).

However, later in systemd/systemd@61aea45 systemd-coredump was changed to do the object analysis in a forked process,
covering those security concerns.

Let's set ProtectHome to read-only so that systemd-coredump produces symbolicated call-stacks for processes running under /home.

Note: it still does not work in /tmp (because of PrivateTmp=yes) and in /root (for unknown reasons).

Before the change (with minidebuginfo enabled):

    root@qemux86-64:~# /home/sleep 1000 &
    [1] 426
    root@qemux86-64:~# kill -11 $(pidof sleep)
    root@qemux86-64:~# coredumpctl info
               PID: 426 (sleep)
               UID: 0 (root)
               GID: 0 (root)
            Signal: 11 (SEGV)
         Timestamp: Fri 2024-09-06 17:25:18 UTC (3s ago)
      Command Line: /home/sleep 1000
        Executable: /home/sleep
     Control Group: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service
              Unit: serial-getty@ttyS0.service
             Slice: system-serial\x2dgetty.slice
           Boot ID: 44ef4ddfaad249ceaa29d1e9f330d3b5
        Machine ID: fb279f18f2c849c59768754c7a274ee3
          Hostname: qemux86-64
           Storage: /var/lib/systemd/coredump/core.sleep.0.44ef4ddfaad249ceaa29d1e9f330d3b5.426.1725643518000000.zst (present)
      Size on Disk: 16.5K
           Message: Process 426 (sleep) of user 0 dumped core.

                    Stack trace of thread 426:
                    #0  0x00007f365f3849a7 clock_nanosleep (libc.so.6 + 0xd49a7)
                    #1  0x00007f365f38f667 __nanosleep (libc.so.6 + 0xdf667)
                    #2  0x0000561fee703737 n/a (/home/sleep + 0x7737)
                    #3  0x000000003a6227c5 n/a (n/a + 0x0)
                    ELF object binary architecture: AMD x86-64
    [1]+  Segmentation fault      (core dumped) /home/sleep 1000

After the change (with minidebuginfo enabled):

    root@qemux86-64:~# /home/sleep 1000 &
    [1] 450
    root@qemux86-64:~# kill -11 $(pidof sleep)
    root@qemux86-64:~# coredumpctl info
               PID: 450 (sleep)
               UID: 0 (root)
               GID: 0 (root)
            Signal: 11 (SEGV)
         Timestamp: Fri 2024-09-06 17:30:12 UTC (4s ago)
      Command Line: /home/sleep 1000
        Executable: /home/sleep
     Control Group: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service
              Unit: serial-getty@ttyS0.service
             Slice: system-serial\x2dgetty.slice
           Boot ID: 44ef4ddfaad249ceaa29d1e9f330d3b5
        Machine ID: fb279f18f2c849c59768754c7a274ee3
          Hostname: qemux86-64
           Storage: /var/lib/systemd/coredump/core.sleep.0.44ef4ddfaad249ceaa29d1e9f330d3b5.450.1725643812000000.zst (present)
      Size on Disk: 16.5K
           Message: Process 450 (sleep) of user 0 dumped core.

                    Stack trace of thread 450:
                    #0  0x00007f795dd689a7 clock_nanosleep (libc.so.6 + 0xd49a7)
                    #1  0x00007f795dd73667 __nanosleep (libc.so.6 + 0xdf667)
                    #2  0x0000561965c9d737 rpl_nanosleep (sleep + 0x7737)
                    #3  0x0000561965c9d0c1 xnanosleep (sleep + 0x70c1)
                    #4  0x0000561965c985c8 main (sleep + 0x25c8)
                    #5  0x00007f795dcba01b __libc_start_call_main (libc.so.6 + 0x2601b)
                    #6  0x00007f795dcba0d9 __libc_start_main (libc.so.6 + 0x260d9)
                    #7  0x0000561965c98685 _start (sleep + 0x2685)
                    ELF object binary architecture: AMD x86-64
    [1]+  Segmentation fault      (core dumped) /home/sleep 1000

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Sep 9, 2024
In systemd/systemd@924453c
ProtectHome was set to true for systemd-coredump in order to reduce risk, since an attacker could craft a malicious binary in order to compromise systemd-coredump.
At that point the object analysis was done in the main systemd-coredump process.
Because of this systemd-coredump is unable to product symbolicated call-stacks for binaries running under /home ("n/a" is shown instead of function names).

However, later in systemd/systemd@61aea45 systemd-coredump was changed to do the object analysis in a forked process,
covering those security concerns.

Let's set ProtectHome to read-only so that systemd-coredump produces symbolicated call-stacks for processes running under /home.

Note: it still does not work in /tmp (because of PrivateTmp=yes) and in /root (for unknown reasons).

Before the change (with minidebuginfo enabled):

    root@qemux86-64:~# /home/sleep 1000 &
    [1] 426
    root@qemux86-64:~# kill -11 $(pidof sleep)
    root@qemux86-64:~# coredumpctl info
               PID: 426 (sleep)
               UID: 0 (root)
               GID: 0 (root)
            Signal: 11 (SEGV)
         Timestamp: Fri 2024-09-06 17:25:18 UTC (3s ago)
      Command Line: /home/sleep 1000
        Executable: /home/sleep
     Control Group: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service
              Unit: serial-getty@ttyS0.service
             Slice: system-serial\x2dgetty.slice
           Boot ID: 44ef4ddfaad249ceaa29d1e9f330d3b5
        Machine ID: fb279f18f2c849c59768754c7a274ee3
          Hostname: qemux86-64
           Storage: /var/lib/systemd/coredump/core.sleep.0.44ef4ddfaad249ceaa29d1e9f330d3b5.426.1725643518000000.zst (present)
      Size on Disk: 16.5K
           Message: Process 426 (sleep) of user 0 dumped core.

                    Stack trace of thread 426:
                    #0  0x00007f365f3849a7 clock_nanosleep (libc.so.6 + 0xd49a7)
                    #1  0x00007f365f38f667 __nanosleep (libc.so.6 + 0xdf667)
                    #2  0x0000561fee703737 n/a (/home/sleep + 0x7737)
                    #3  0x000000003a6227c5 n/a (n/a + 0x0)
                    ELF object binary architecture: AMD x86-64
    [1]+  Segmentation fault      (core dumped) /home/sleep 1000

After the change (with minidebuginfo enabled):

    root@qemux86-64:~# /home/sleep 1000 &
    [1] 450
    root@qemux86-64:~# kill -11 $(pidof sleep)
    root@qemux86-64:~# coredumpctl info
               PID: 450 (sleep)
               UID: 0 (root)
               GID: 0 (root)
            Signal: 11 (SEGV)
         Timestamp: Fri 2024-09-06 17:30:12 UTC (4s ago)
      Command Line: /home/sleep 1000
        Executable: /home/sleep
     Control Group: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service
              Unit: serial-getty@ttyS0.service
             Slice: system-serial\x2dgetty.slice
           Boot ID: 44ef4ddfaad249ceaa29d1e9f330d3b5
        Machine ID: fb279f18f2c849c59768754c7a274ee3
          Hostname: qemux86-64
           Storage: /var/lib/systemd/coredump/core.sleep.0.44ef4ddfaad249ceaa29d1e9f330d3b5.450.1725643812000000.zst (present)
      Size on Disk: 16.5K
           Message: Process 450 (sleep) of user 0 dumped core.

                    Stack trace of thread 450:
                    #0  0x00007f795dd689a7 clock_nanosleep (libc.so.6 + 0xd49a7)
                    #1  0x00007f795dd73667 __nanosleep (libc.so.6 + 0xdf667)
                    #2  0x0000561965c9d737 rpl_nanosleep (sleep + 0x7737)
                    #3  0x0000561965c9d0c1 xnanosleep (sleep + 0x70c1)
                    #4  0x0000561965c985c8 main (sleep + 0x25c8)
                    #5  0x00007f795dcba01b __libc_start_call_main (libc.so.6 + 0x2601b)
                    #6  0x00007f795dcba0d9 __libc_start_main (libc.so.6 + 0x260d9)
                    #7  0x0000561965c98685 _start (sleep + 0x2685)
                    ELF object binary architecture: AMD x86-64
    [1]+  Segmentation fault      (core dumped) /home/sleep 1000

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Oct 10, 2024
Fixed:
1) $ bitbake virtual/kernel -cmenuconfig
Do some changes and save the new config to default .config.
2) $ bitbake virtual/kernel -cdiffconfig
The config fragment is dumped into ${WORKDIR}/fragment.cfg.

But the .config which was saved by step #1 is overridden by .config.orig, so
the changes will be lost if run 'bitbake virtual/kernel'

And the following comment is for subprocess.call(), not for shutil.copy(),
so move subprocess.call() to the correct location.
    # No need to check the exit code as we know it's going to be
    # non-zero, but that's what we expect.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Oct 11, 2024
Fixed:
1) $ bitbake virtual/kernel -cmenuconfig
Do some changes and save the new config to default .config.
2) $ bitbake virtual/kernel -cdiffconfig
The config fragment is dumped into ${WORKDIR}/fragment.cfg.

But the .config which was saved by step #1 is overridden by .config.orig, so
the changes will be lost if run 'bitbake virtual/kernel'

And the following comment is for subprocess.call(), not for shutil.copy(),
so move subprocess.call() to the correct location.
    # No need to check the exit code as we know it's going to be
    # non-zero, but that's what we expect.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Nov 26, 2024
Fixed:
1) $ bitbake virtual/kernel -cmenuconfig
Do some changes and save the new config to default .config.
2) $ bitbake virtual/kernel -cdiffconfig
The config fragment is dumped into ${WORKDIR}/fragment.cfg.

But the .config which was saved by step #1 is overridden by .config.orig, so
the changes will be lost if run 'bitbake virtual/kernel'

And the following comment is for subprocess.call(), not for shutil.copy(),
so move subprocess.call() to the correct location.
    # No need to check the exit code as we know it's going to be
    # non-zero, but that's what we expect.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6cccf6b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
kraj pushed a commit that referenced this pull request Nov 26, 2024
Fixed:
1) $ bitbake virtual/kernel -cmenuconfig
Do some changes and save the new config to default .config.
2) $ bitbake virtual/kernel -cdiffconfig
The config fragment is dumped into ${WORKDIR}/fragment.cfg.

But the .config which was saved by step #1 is overridden by .config.orig, so
the changes will be lost if run 'bitbake virtual/kernel'

And the following comment is for subprocess.call(), not for shutil.copy(),
so move subprocess.call() to the correct location.
    # No need to check the exit code as we know it's going to be
    # non-zero, but that's what we expect.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6cccf6b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
kraj pushed a commit that referenced this pull request Feb 3, 2025
With current master branch I see an error in do_install:
| DEBUG: Executing shell function do_install
| install: omitting directory '/home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/xorg-minimal-fonts-1.0-build'
| WARNING: /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196:151 exit 1 from 'install -m 0644 /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/* /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/image//usr/share/fonts/X11/misc/'
| WARNING: Backtrace (BB generated script):
| 	#1: do_install, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 151
| 	#2: main, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 159
ERROR: Task (/home/flk/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb:do_install) failed with exit code '1'

Fix the problem by specifying more precisely what is to be installed

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 4, 2025
With current master branch I see an error in do_install:
| DEBUG: Executing shell function do_install
| install: omitting directory '/home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/xorg-minimal-fonts-1.0-build'
| WARNING: /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196:151 exit 1 from 'install -m 0644 /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/* /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/image//usr/share/fonts/X11/misc/'
| WARNING: Backtrace (BB generated script):
| 	#1: do_install, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 151
| 	#2: main, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 159
ERROR: Task (/home/flk/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb:do_install) failed with exit code '1'

Fix the problem by specifying more precisely what is to be installed

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 5, 2025
With current master branch I see an error in do_install:
| DEBUG: Executing shell function do_install
| install: omitting directory '/home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/xorg-minimal-fonts-1.0-build'
| WARNING: /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196:151 exit 1 from 'install -m 0644 /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/misc/* /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/image//usr/share/fonts/X11/misc/'
| WARNING: Backtrace (BB generated script):
| 	#1: do_install, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 151
| 	#2: main, /home/flk/poky/build/tmp/work/all-poky-linux/xorg-minimal-fonts/1.0/temp/run.do_install.112196, line 159
ERROR: Task (/home/flk/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb:do_install) failed with exit code '1'

Fix the problem by specifying more precisely what is to be installed

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 6, 2025
When building an image with IMAGE_INSTALL:append = ' rust libstd-rs',
a conflict arises due to multiple candidates for the rlib
dependency `std`. This results in the following error:

error[E0464]: multiple candidates for `rlib` dependency `std` found
  |
  = note: candidate #1: /usr/lib/rustlib/x86_64-poky-linux-gnu/lib/libstd-20c3de2d9292cd03.rlib
  = note: candidate #2: /usr/lib/rustlib/x86_64-poky-linux-gnu/lib/libstd.so

The issue seems to be from an extra copy of the rlib as both the recipes
generate the same rlibs, causing conflicts when using std lib to compile
rust programs in the image.

Remove the redundant rlib copy ensuring only the necessary rlib is
present and prevent the conflict.

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 9, 2025
License-Update: Update copyright year, attribution bounds

The project has changed to using a pyproject.toml with hatchling as the
build backend, so change the recipe to match.

Changelog (https://github.com/justinmayer/typogrify/releases/tag/2.1.0):

- Add ability to select which filters are applied (#1 by davidlesieur & barrysteyn)
- jinja_filters: Update import for Jinja 3.1 (by jyelloz)
- Ensure all available tests are run (by mcepl)
- Package via pyproject instead of Setuptools (by justinmayer)
- Improve testing, linting, and CI tooling
- Drop support for Python < 3.9

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 9, 2025
License-Update: Update copyright year, attribution bounds

The project has changed to using a pyproject.toml with hatchling as the
build backend, so change the recipe to match.

Changelog (https://github.com/justinmayer/typogrify/releases/tag/2.1.0):

- Add ability to select which filters are applied (#1 by davidlesieur & barrysteyn)
- jinja_filters: Update import for Jinja 3.1 (by jyelloz)
- Ensure all available tests are run (by mcepl)
- Package via pyproject instead of Setuptools (by justinmayer)
- Improve testing, linting, and CI tooling
- Drop support for Python < 3.9

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 10, 2025
License-Update: Update copyright year, attribution bounds

The project has changed to using a pyproject.toml with hatchling as the
build backend, so change the recipe to match.

Changelog (https://github.com/justinmayer/typogrify/releases/tag/2.1.0):

- Add ability to select which filters are applied (#1 by davidlesieur & barrysteyn)
- jinja_filters: Update import for Jinja 3.1 (by jyelloz)
- Ensure all available tests are run (by mcepl)
- Package via pyproject instead of Setuptools (by justinmayer)
- Improve testing, linting, and CI tooling
- Drop support for Python < 3.9

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Feb 10, 2025
License-Update: Update copyright year, attribution bounds

The project has changed to using a pyproject.toml with hatchling as the
build backend, so change the recipe to match.

Changelog (https://github.com/justinmayer/typogrify/releases/tag/2.1.0):

- Add ability to select which filters are applied (#1 by davidlesieur & barrysteyn)
- jinja_filters: Update import for Jinja 3.1 (by jyelloz)
- Ensure all available tests are run (by mcepl)
- Package via pyproject instead of Setuptools (by justinmayer)
- Improve testing, linting, and CI tooling
- Drop support for Python < 3.9

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jun 12, 2025
Calling oe-debuginfod in a build failed:
...
$ oe-debuginfod
|Getting sysroot...
|Error: NOTE: Reconnecting to bitbake server...
|NOTE: Retrying server connection (#1)... (18:55:53.009687)
|path-to-build/tmp/work/x86_64-linux/elfutils-native/0.192/recipe-sysroot-native doesn't exist.
|Have you run 'bitbake elfutils-native -caddto_recipe_sysroot'?
...

While calling bitbake-getvar to get sysroot, the output of bitbake-getvar
was mixed with output from bitbake
...
NOTE: Reconnecting to bitbake server...
...

Improve the output of bitbake-getvar, filter out unrelated message

BTW: bitbake-getvar --quiet (Silence bitbake server logging) could not
skip above "NOTE: Reconnecting to bitbake server..." message from bitbake

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
kraj pushed a commit that referenced this pull request Mar 27, 2026
runltp has been removed from ltp and the official tool to invoke ltp
test is kirk.

Message when running runltp:

"INFO: runltp script is deprecated, try kirk
https://github.com/linux-test-project/kirk"

See also:
linux-test-project/ltp@6efd360

The test coverage is the same since the logic there is not touched
but the output is different. The return value from oeqa are the same
as before.

Now it is a json file with the results, which is machine readable
without any extra parsing. Two files are created by test suite
<test>.json and <test>-raw.log

Output example of math.json:
{
    "results": [
        {
            "test_fqn": "abs01",
            "status": "pass",
            "test": {
                "command": "abs01",
                "arguments": [],
                "log": "abs01       1  TPASS  :  Test passed\nabs01       2  TPASS  :  Test passed\nabs01       3  TPASS  :  Test passed\n",
                "retval": [
                    "0"
                ],
                "duration": 0.002702474594116211,
                "failed": 0,
                "passed": 3,
                "broken": 0,
                "skipped": 0,
                "warnings": 0,
                "result": "pass"
            }
        }, [...]
    ],
    "stats": {
        "runtime": 1.4888691902160645,
        "passed": 22,
        "failed": 0,
        "broken": 0,
        "skipped": 0,
        "warnings": 0
    },
    "environment": {
        "distribution": "nodistro",
        "distribution_version": "nodistro.0",
        "kernel": "Linux 6.18.13-yocto-standard #1 SMP PREEMPT_DYNAMIC Tue Mar  3 16:48:55 UTC 2026",
        "cmdline": "root=/dev/vda rw  ip=192.168.7.2::192.168.7.1:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0 console=ttyS0 console=ttyS1 oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1 swiotlb=0  printk.time=1",
        "arch": "x86_64",
        "cpu": "unknown",
        "swap": "0 kB",
        "RAM": "222368 kB"
    }
}

Add in configuration file (local.conf)

IMAGE_CLASSES += "testimage"
CORE_IMAGE_EXTRA_INSTALL += "ltp openssh"
TEST_SUITES = "ping ssh ltp"
QB_MEM = <mem size>
QB_CPU_KVM = "-cpu host -smp <cpus>"
QB_SMP = "-smp <cpus>"
QB_KVM = "1"
IMAGE_ROOTFS_EXTRA_SPACE = "2097152"

Tested with different VM sizes and architectures:

qemux86-64 MEM: 4096, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 1 (all ok)
qemux86-64 MEM: 1024, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 4 (all ok)
qemuarm64: MEM: 4096, CPU: 1 (all ok)
qemuriscv64: MEM 4096, CPU 4 (all ok)

Then:
bitbake core-image-minimal
bitbake core-image-minimal -c testimage

With these configs we didn't see any testimage failures with kirk and
run completes.

If we revert the ltp disable patches below, the testimage does not fail
but it gives warnings, since the ssh connection gets droped from the DUT
because of the OOM killer. Then in continues with the next testsuite.

* ltp: disable cve failing testcases
* ltp: disable pty testcase
* ltp: disable min_free_kbytes

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Assisted-by: Claude, Anthropic
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Mar 27, 2026
runltp has been removed from ltp and the official tool to invoke ltp
test is kirk.

Message when running runltp:

"INFO: runltp script is deprecated, try kirk
https://github.com/linux-test-project/kirk"

See also:
linux-test-project/ltp@6efd360

The test coverage is the same since the logic there is not touched
but the output is different. The return value from oeqa are the same
as before.

Now it is a json file with the results, which is machine readable
without any extra parsing. Two files are created by test suite
<test>.json and <test>-raw.log

Output example of math.json:
{
    "results": [
        {
            "test_fqn": "abs01",
            "status": "pass",
            "test": {
                "command": "abs01",
                "arguments": [],
                "log": "abs01       1  TPASS  :  Test passed\nabs01       2  TPASS  :  Test passed\nabs01       3  TPASS  :  Test passed\n",
                "retval": [
                    "0"
                ],
                "duration": 0.002702474594116211,
                "failed": 0,
                "passed": 3,
                "broken": 0,
                "skipped": 0,
                "warnings": 0,
                "result": "pass"
            }
        }, [...]
    ],
    "stats": {
        "runtime": 1.4888691902160645,
        "passed": 22,
        "failed": 0,
        "broken": 0,
        "skipped": 0,
        "warnings": 0
    },
    "environment": {
        "distribution": "nodistro",
        "distribution_version": "nodistro.0",
        "kernel": "Linux 6.18.13-yocto-standard #1 SMP PREEMPT_DYNAMIC Tue Mar  3 16:48:55 UTC 2026",
        "cmdline": "root=/dev/vda rw  ip=192.168.7.2::192.168.7.1:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0 console=ttyS0 console=ttyS1 oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1 swiotlb=0  printk.time=1",
        "arch": "x86_64",
        "cpu": "unknown",
        "swap": "0 kB",
        "RAM": "222368 kB"
    }
}

Add in configuration file (local.conf)

IMAGE_CLASSES += "testimage"
CORE_IMAGE_EXTRA_INSTALL += "ltp openssh"
TEST_SUITES = "ping ssh ltp"
QB_MEM = <mem size>
QB_CPU_KVM = "-cpu host -smp <cpus>"
QB_SMP = "-smp <cpus>"
QB_KVM = "1"
IMAGE_ROOTFS_EXTRA_SPACE = "2097152"

Tested with different VM sizes and architectures:

qemux86-64 MEM: 4096, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 1 (all ok)
qemux86-64 MEM: 1024, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 4 (all ok)
qemuarm64: MEM: 4096, CPU: 1 (all ok)
qemuriscv64: MEM 4096, CPU 4 (all ok)

Then:
bitbake core-image-minimal
bitbake core-image-minimal -c testimage

With these configs we didn't see any testimage failures with kirk and
run completes.

If we revert the ltp disable patches below, the testimage does not fail
but it gives warnings, since the ssh connection gets droped from the DUT
because of the OOM killer. Then in continues with the next testsuite.

* ltp: disable cve failing testcases
* ltp: disable pty testcase
* ltp: disable min_free_kbytes

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Assisted-by: Claude, Anthropic
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Mar 29, 2026
runltp has been removed from ltp and the official tool to invoke ltp
test is kirk.

Message when running runltp:

"INFO: runltp script is deprecated, try kirk
https://github.com/linux-test-project/kirk"

See also:
linux-test-project/ltp@6efd360

The test coverage is the same since the logic there is not touched
but the output is different. The return value from oeqa are the same
as before.

Now it is a json file with the results, which is machine readable
without any extra parsing. Two files are created by test suite
<test>.json and <test>-raw.log

Output example of math.json:
{
    "results": [
        {
            "test_fqn": "abs01",
            "status": "pass",
            "test": {
                "command": "abs01",
                "arguments": [],
                "log": "abs01       1  TPASS  :  Test passed\nabs01       2  TPASS  :  Test passed\nabs01       3  TPASS  :  Test passed\n",
                "retval": [
                    "0"
                ],
                "duration": 0.002702474594116211,
                "failed": 0,
                "passed": 3,
                "broken": 0,
                "skipped": 0,
                "warnings": 0,
                "result": "pass"
            }
        }, [...]
    ],
    "stats": {
        "runtime": 1.4888691902160645,
        "passed": 22,
        "failed": 0,
        "broken": 0,
        "skipped": 0,
        "warnings": 0
    },
    "environment": {
        "distribution": "nodistro",
        "distribution_version": "nodistro.0",
        "kernel": "Linux 6.18.13-yocto-standard #1 SMP PREEMPT_DYNAMIC Tue Mar  3 16:48:55 UTC 2026",
        "cmdline": "root=/dev/vda rw  ip=192.168.7.2::192.168.7.1:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0 console=ttyS0 console=ttyS1 oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1 swiotlb=0  printk.time=1",
        "arch": "x86_64",
        "cpu": "unknown",
        "swap": "0 kB",
        "RAM": "222368 kB"
    }
}

Add in configuration file (local.conf)

IMAGE_CLASSES += "testimage"
CORE_IMAGE_EXTRA_INSTALL += "ltp openssh"
TEST_SUITES = "ping ssh ltp"
QB_MEM = <mem size>
QB_CPU_KVM = "-cpu host -smp <cpus>"
QB_SMP = "-smp <cpus>"
QB_KVM = "1"
IMAGE_ROOTFS_EXTRA_SPACE = "2097152"

Tested with different VM sizes and architectures:

qemux86-64 MEM: 4096, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 1 (all ok)
qemux86-64 MEM: 1024, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 4 (all ok)
qemuarm64: MEM: 4096, CPU: 1 (all ok)
qemuriscv64: MEM 4096, CPU 4 (all ok)

Then:
bitbake core-image-minimal
bitbake core-image-minimal -c testimage

With these configs we didn't see any testimage failures with kirk and
run completes.

If we revert the ltp disable patches below, the testimage does not fail
but it gives warnings, since the ssh connection gets droped from the DUT
because of the OOM killer. Then in continues with the next testsuite.

* ltp: disable cve failing testcases
* ltp: disable pty testcase
* ltp: disable min_free_kbytes

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Assisted-by: Claude, Anthropic
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Mar 30, 2026
runltp has been removed from ltp and the official tool to invoke ltp
test is kirk.

Message when running runltp:

"INFO: runltp script is deprecated, try kirk
https://github.com/linux-test-project/kirk"

See also:
linux-test-project/ltp@6efd360

The test coverage is the same since the logic there is not touched
but the output is different. The return value from oeqa are the same
as before.

Now it is a json file with the results, which is machine readable
without any extra parsing. Two files are created by test suite
<test>.json and <test>-raw.log

Output example of math.json:
{
    "results": [
        {
            "test_fqn": "abs01",
            "status": "pass",
            "test": {
                "command": "abs01",
                "arguments": [],
                "log": "abs01       1  TPASS  :  Test passed\nabs01       2  TPASS  :  Test passed\nabs01       3  TPASS  :  Test passed\n",
                "retval": [
                    "0"
                ],
                "duration": 0.002702474594116211,
                "failed": 0,
                "passed": 3,
                "broken": 0,
                "skipped": 0,
                "warnings": 0,
                "result": "pass"
            }
        }, [...]
    ],
    "stats": {
        "runtime": 1.4888691902160645,
        "passed": 22,
        "failed": 0,
        "broken": 0,
        "skipped": 0,
        "warnings": 0
    },
    "environment": {
        "distribution": "nodistro",
        "distribution_version": "nodistro.0",
        "kernel": "Linux 6.18.13-yocto-standard #1 SMP PREEMPT_DYNAMIC Tue Mar  3 16:48:55 UTC 2026",
        "cmdline": "root=/dev/vda rw  ip=192.168.7.2::192.168.7.1:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0 console=ttyS0 console=ttyS1 oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1 swiotlb=0  printk.time=1",
        "arch": "x86_64",
        "cpu": "unknown",
        "swap": "0 kB",
        "RAM": "222368 kB"
    }
}

Add in configuration file (local.conf)

IMAGE_CLASSES += "testimage"
CORE_IMAGE_EXTRA_INSTALL += "ltp openssh"
TEST_SUITES = "ping ssh ltp"
QB_MEM = <mem size>
QB_CPU_KVM = "-cpu host -smp <cpus>"
QB_SMP = "-smp <cpus>"
QB_KVM = "1"
IMAGE_ROOTFS_EXTRA_SPACE = "2097152"

Tested with different VM sizes and architectures:

qemux86-64 MEM: 4096, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 1 (all ok)
qemux86-64 MEM: 1024, CPU: 2 (all ok)
qemux86-64 MEM: 1024, CPU: 4 (all ok)
qemuarm64: MEM: 4096, CPU: 1 (all ok)
qemuriscv64: MEM 4096, CPU 4 (all ok)

Then:
bitbake core-image-minimal
bitbake core-image-minimal -c testimage

With these configs we didn't see any testimage failures with kirk and
run completes.

If we revert the ltp disable patches below, the testimage does not fail
but it gives warnings, since the ssh connection gets droped from the DUT
because of the OOM killer. Then in continues with the next testsuite.

* ltp: disable cve failing testcases
* ltp: disable pty testcase
* ltp: disable min_free_kbytes

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Assisted-by: Claude, Anthropic
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jun 12, 2026
It doesn't apply after udev-builtin-path_id.c was also updated by
CVE-2026-40225-01.patch in
https://git.openembedded.org/openembedded-core/commit/?h=scarthgap&id=fc2d33dbb2d5180b77c10865156db342f9d582da

causing do_patch failure for scarthgap builds with musl:

Hunk #1 FAILED at 39.
1 out of 1 hunk FAILED -- rejects in file src/udev/udev-builtin-net_id.c
patching file src/udev/udev-builtin-path_id.c
patching file src/udev/udev-event.c
patching file src/udev/udev-rules.c
Patch 0003-src-basic-missing.h-check-for-missing-strndupa.patch does not apply (enforce with -f)

stderr: ')
ERROR: Logfile of failure stored in: /OE/build/oe-core/tmp-musl/work/core2-64-oe-linux-musl/systemd/255.21/temp/log.do_patch.215528
ERROR: Task (/OE/build/oe-core/openembedded-core/meta/recipes-core/systemd/systemd_255.21.bb:do_patch) failed with exit code '1'

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
kraj pushed a commit that referenced this pull request Jul 22, 2026
Changes: systemd/systemd@v259.5...v261.1
https://github.com/systemd/systemd/blob/main/NEWS

- Drop backported patches no longer needed (libfido2_cflags,
  tpm2-util PCR bank, fdset_new debug)
- Remove sysvinit-path/sysvrcnd-path meson options and
  systemd-sysv-install skeleton (removed upstream in 260)
- Add explicit meson disables for auto-detected features in
  systemd-systemctl-native to prevent host sysroot contamination
- Refresh 0003-Do-not-create-var-log-README.patch

Tested on qemu target with testsuite systemd.

Summary of changes in systemd from NEWS file:

* Drop legacy SysV init support: rc-local, sysv-generator, sysv-install
  removed; services must ship native systemd unit files going forward.

* Deprecate non-system users/groups in udev and systemd-networkd
  configs; usage still works but emits warnings and is scheduled for
  removal.

* Raise dependency baselines:
  - cryptsetup, elfutils, libblkid, libseccomp, glibc, libxcrypt,
    OpenSSL, Python all require newer versions.
  - Linux baseline moved from 5.4 to 5.10, recommended 5.14, with
    6.6 needed for full functionality; compatibility code for older
    kernels dropped.
  - musl minimum bumped from 1.2.5 to 1.2.6 when building with
    -Dlibc=musl.

* Rework dynamic linking: shift optional dependencies to dlopen() for
  libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk,
  libcryptsetup. libsystemd no longer guarantees a link to libm, so
  consumers relying on transitive libm must link it explicitly.

* sd-varlink API: temporary enum extension in 260-rc1 changed numeric
  values, reverted in -rc2. Binaries built against -rc1 headers must
  be rebuilt to avoid ABI mismatches.

* systemd-logind D-Bus CanPowerOff/CanReboot/CanSuspend/... gain new
  return values for inhibitors: "inhibited", "inhibitor-blocked",
  "challenge-inhibitor-blocked". Consumers assuming only "yes"/"no"
  need adjustment.

* Rename systemd-nspawn --user= to --uid=. The -u short option still
  works. Old forms --user NAME/--user=NAME remain accepted but are
  deprecated and emit a warning; bare --user now toggles user manager
  scope instead of taking an argument.

* Varlink io.systemd.Unit: several configuration fields switched from
  free-form strings to enums (ExecInputType, ExecOutputType,
  ProtectHome, CGroupController, CollectMode, EmergencyAction,
  JobMode). Wire format now uses underscores instead of dashes/plus
  (e.g. "tty-force" -> "tty_force", "kmsg+console" -> "kmsg_console").

* Announced removal of experimental systemd-sysupdated D-Bus API in
  favor of direct Varlink IPC to systemd-sysupdate; updatectl will be
  reworked accordingly.

* TPM / CC measurement changes:
  - systemd-stub now measures more artifacts into hardware CC
    registers (e.g. TDX RTMRs) in addition to TPM, altering expected
    CC values for devicetree, initrd, ucode addons, UKI profile.
  - New verity TPM NvPCR added; various components measure dm-verity
    images into it.
  - New ConditionSecurity=measured-os, and improved SMBIOS measurements
    in systemd-boot/systemd-stub.
  - New systemd-pcrosseparator.service adds a PCR separator
    measurement affecting PCRs 0-7,9,12-14 to isolate firmware vs OS
    measurements.

* Boot and UKI tooling:
  - systemd-stub introduces a "boot secret" passed via initrd for TPM
    fallback key material in non-TPM environments.
  - Keyboard layout and serial console are auto-propagated from UEFI
    to Linux; LoaderKeyboardLayout EFI variable used as fallback
    mapping.
  - Unified handling of UKI sidecars and "extra" Type #1 stanzas for
    confext/sysext/credentials.
  - systemd-boot avoids auto-boot into non-default UKI profiles and
    adds better fallback handling and new bootctl verbs/options.

* New IMDS subsystem:
  - hwdb gains 40-imds.hwdb to detect major public clouds and describe
    access to local IMDS endpoints.
  - systemd-imdsd provides Varlink IPC for IMDS access; systemd-imds
    imports IMDS data into credentials with measurements.
  - Optional network lockdown for IMDS via -Dimds-network=, with a
    "locked" default recommended for secure setups.

* New metrics / report framework:
  - systemd-report defines a Varlink-based metrics aggregation API
    under /run/systemd/report/.
  - Initial endpoints from systemd-networkd and the service manager in
    260; extended in 261 to system-wide and per-service/cgroup metrics,
    with Varlink and HTTP upload support.

* New mstack feature:
  - ".mstack/" directory layout defines overlayfs + bind mount stacks
    for services/containers.
  - RootMStack= unit setting and systemd-nspawn --mstack= support
    invoking services and containers from self-describing mstack
    images.
  - importctl pull-oci stores OCI images as mstack images.

* Manager and resource-control enhancements:
  - New per-unit settings: RootMStack=, PrivateUsers=managed,
    MemoryTHP=, CPUSetPartition=, RestrictFileSystemAccess= (BPF LSM),
    CPUPressureWatch=/CPUPressureThresholdSec=,
    IOPressureWatch=/IOPressureThresholdSec=.
  - New global knobs: DefaultMemoryZSwapWriteback=,
    EventLoopRateLimitIntervalSec=/EventLoopRateLimitBurst=,
    MinimumUptimeSec= (default 15s to avoid tight boot loops).
  - fd-store persistence improvements: LUO/Kexec handover support in
    PID1, FileDescriptorStorePreserve=on-success and user/manager
    plumbing to keep memfds and other state across session restarts
    and kexec.

* Varlink and IPC surface growth:
  - New Varlink methods for shutdown (PowerOff, Reboot, SoftReboot,
    Halt, Kexec) on io.systemd.Manager and io.systemd.Shutdown.
  - io.systemd.Unit.StartTransient(), io.systemd.Manager.ListUnitsByNames(),
    io.systemd.Job interface for job inspection/cancellation.
  - systemd-networkd Varlink updates: Reload(), Link.Describe(),
    Reconfigure(), Renew(), ForceRenew(), Up()/Down() and reporting
    of interface bit rates.
  - journalctl gains a Varlink GetEntries() interface.
  - New sd-varlink APIs for sentinel handling and protocol upgrade,
    plus wildcard type SD_VARLINK_ANY and per-UID connection limit
    reduction.

* Scheduling and rollout knobs:
  - CPUSchedulingPolicy=ext for SCHED_EXT.
  - ConditionFraction= for percentage-based staged rollouts keyed by
    machine ID and tag.
  - ConditionMachineTag= and new Tags= in /etc/machine-info for
    fleet-wide targeting via hostnamed.

* Filesystem, tmpfiles, sysusers:
  - tmpfiles.d/root.conf sets / to mode 0555 in certain setups.
  - systemd-tmpfiles gains --inline and new k/K directives for
    capabilities.
  - New initrd services systemd-sysext-sysroot.service and
    systemd-confext-sysroot.service to merge extensions from initrd,
    plus a kernel kill switch to fully disable sysext/confext.

* Networking and resolved:
  - DHCP relay refactoring with sd-dhcp-relay backend; [DHCPServer]
    options deprecated in favor of [Network]/[DHCPRelay] + networkd.conf
    settings.
  - systemd-networkd adds MultiPathRoute= improvements, ModemManager
    "simple connect" integration, new offload controls in .link files,
    new DHCPv4 server options, and various Varlink/JSON interface
    updates.
  - systemd-resolved adds JSON static RR drop-ins, per-interface cache
    size tunables, improved DNSSEC handling for insecure answers,
    better stale cache retention, and reload of /etc/hosts on
    SIGHUP/Reload().
  - resolvectl now talks via Varlink; nss-resolve gains interface
    scoping via $SYSTEMD_NSS_RESOLVE_INTERFACE.

* Logging, coredumps, cryptsetup:
  - coredumpctl info gains JSON output; crashing thread TID/name and
    new COREDUMP_CODE field recorded.
  - systemd-cryptsetup/libcryptsetup moved behind dlopen(); new
    fixate-volume-key= support for binding crypttab entries to volume
    keys; systemd-cryptenroll now defaults to RSA-OAEP+SHA-256 for
    sealed keys.
  - systemd-creds improves TPM2 PCR handling to avoid errors on non-TPM
    systems.

* OOM and reliability:
  - systemd-oomd gains OOM rulesets and "prekill hook" integration via
    Varlink sockets.
  - systemd-oomd and PID1 adopt pidfds in more places.
  - systemd-run gets --output= to control verbose mode logging.

* Misc:
  - RootImageOptions=/ExtensionImages=/MountImages= parsing changed so
    last definition per partition wins, aligning with other option
    semantics.
  - systemd-sysext/confext refresh now suppresses unnecessary
    umount/mount by default, with --always-refresh= to force a
    refresh.
  - getty@.service now has [Install] section and must be explicitly
    enabled.
  - runlevel[0-6].target can be restored when building with
    -Dcompat-sysv-interfaces=yes, but SysV scripts themselves are
    gone.

AI-Generated: Claude-opus-4.6
Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 23, 2026
Changes: systemd/systemd@v259.5...v261.1
https://github.com/systemd/systemd/blob/main/NEWS

- Drop backported patches no longer needed (libfido2_cflags,
  tpm2-util PCR bank, fdset_new debug)
- Remove sysvinit-path/sysvrcnd-path meson options and
  systemd-sysv-install skeleton (removed upstream in 260)
- Add explicit meson disables for auto-detected features in
  systemd-systemctl-native to prevent host sysroot contamination
- Refresh 0003-Do-not-create-var-log-README.patch

Tested on qemu target with testsuite systemd.

Summary of changes in systemd from NEWS file:

* Drop legacy SysV init support: rc-local, sysv-generator, sysv-install
  removed; services must ship native systemd unit files going forward.

* Deprecate non-system users/groups in udev and systemd-networkd
  configs; usage still works but emits warnings and is scheduled for
  removal.

* Raise dependency baselines:
  - cryptsetup, elfutils, libblkid, libseccomp, glibc, libxcrypt,
    OpenSSL, Python all require newer versions.
  - Linux baseline moved from 5.4 to 5.10, recommended 5.14, with
    6.6 needed for full functionality; compatibility code for older
    kernels dropped.
  - musl minimum bumped from 1.2.5 to 1.2.6 when building with
    -Dlibc=musl.

* Rework dynamic linking: shift optional dependencies to dlopen() for
  libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk,
  libcryptsetup. libsystemd no longer guarantees a link to libm, so
  consumers relying on transitive libm must link it explicitly.

* sd-varlink API: temporary enum extension in 260-rc1 changed numeric
  values, reverted in -rc2. Binaries built against -rc1 headers must
  be rebuilt to avoid ABI mismatches.

* systemd-logind D-Bus CanPowerOff/CanReboot/CanSuspend/... gain new
  return values for inhibitors: "inhibited", "inhibitor-blocked",
  "challenge-inhibitor-blocked". Consumers assuming only "yes"/"no"
  need adjustment.

* Rename systemd-nspawn --user= to --uid=. The -u short option still
  works. Old forms --user NAME/--user=NAME remain accepted but are
  deprecated and emit a warning; bare --user now toggles user manager
  scope instead of taking an argument.

* Varlink io.systemd.Unit: several configuration fields switched from
  free-form strings to enums (ExecInputType, ExecOutputType,
  ProtectHome, CGroupController, CollectMode, EmergencyAction,
  JobMode). Wire format now uses underscores instead of dashes/plus
  (e.g. "tty-force" -> "tty_force", "kmsg+console" -> "kmsg_console").

* Announced removal of experimental systemd-sysupdated D-Bus API in
  favor of direct Varlink IPC to systemd-sysupdate; updatectl will be
  reworked accordingly.

* TPM / CC measurement changes:
  - systemd-stub now measures more artifacts into hardware CC
    registers (e.g. TDX RTMRs) in addition to TPM, altering expected
    CC values for devicetree, initrd, ucode addons, UKI profile.
  - New verity TPM NvPCR added; various components measure dm-verity
    images into it.
  - New ConditionSecurity=measured-os, and improved SMBIOS measurements
    in systemd-boot/systemd-stub.
  - New systemd-pcrosseparator.service adds a PCR separator
    measurement affecting PCRs 0-7,9,12-14 to isolate firmware vs OS
    measurements.

* Boot and UKI tooling:
  - systemd-stub introduces a "boot secret" passed via initrd for TPM
    fallback key material in non-TPM environments.
  - Keyboard layout and serial console are auto-propagated from UEFI
    to Linux; LoaderKeyboardLayout EFI variable used as fallback
    mapping.
  - Unified handling of UKI sidecars and "extra" Type #1 stanzas for
    confext/sysext/credentials.
  - systemd-boot avoids auto-boot into non-default UKI profiles and
    adds better fallback handling and new bootctl verbs/options.

* New IMDS subsystem:
  - hwdb gains 40-imds.hwdb to detect major public clouds and describe
    access to local IMDS endpoints.
  - systemd-imdsd provides Varlink IPC for IMDS access; systemd-imds
    imports IMDS data into credentials with measurements.
  - Optional network lockdown for IMDS via -Dimds-network=, with a
    "locked" default recommended for secure setups.

* New metrics / report framework:
  - systemd-report defines a Varlink-based metrics aggregation API
    under /run/systemd/report/.
  - Initial endpoints from systemd-networkd and the service manager in
    260; extended in 261 to system-wide and per-service/cgroup metrics,
    with Varlink and HTTP upload support.

* New mstack feature:
  - ".mstack/" directory layout defines overlayfs + bind mount stacks
    for services/containers.
  - RootMStack= unit setting and systemd-nspawn --mstack= support
    invoking services and containers from self-describing mstack
    images.
  - importctl pull-oci stores OCI images as mstack images.

* Manager and resource-control enhancements:
  - New per-unit settings: RootMStack=, PrivateUsers=managed,
    MemoryTHP=, CPUSetPartition=, RestrictFileSystemAccess= (BPF LSM),
    CPUPressureWatch=/CPUPressureThresholdSec=,
    IOPressureWatch=/IOPressureThresholdSec=.
  - New global knobs: DefaultMemoryZSwapWriteback=,
    EventLoopRateLimitIntervalSec=/EventLoopRateLimitBurst=,
    MinimumUptimeSec= (default 15s to avoid tight boot loops).
  - fd-store persistence improvements: LUO/Kexec handover support in
    PID1, FileDescriptorStorePreserve=on-success and user/manager
    plumbing to keep memfds and other state across session restarts
    and kexec.

* Varlink and IPC surface growth:
  - New Varlink methods for shutdown (PowerOff, Reboot, SoftReboot,
    Halt, Kexec) on io.systemd.Manager and io.systemd.Shutdown.
  - io.systemd.Unit.StartTransient(), io.systemd.Manager.ListUnitsByNames(),
    io.systemd.Job interface for job inspection/cancellation.
  - systemd-networkd Varlink updates: Reload(), Link.Describe(),
    Reconfigure(), Renew(), ForceRenew(), Up()/Down() and reporting
    of interface bit rates.
  - journalctl gains a Varlink GetEntries() interface.
  - New sd-varlink APIs for sentinel handling and protocol upgrade,
    plus wildcard type SD_VARLINK_ANY and per-UID connection limit
    reduction.

* Scheduling and rollout knobs:
  - CPUSchedulingPolicy=ext for SCHED_EXT.
  - ConditionFraction= for percentage-based staged rollouts keyed by
    machine ID and tag.
  - ConditionMachineTag= and new Tags= in /etc/machine-info for
    fleet-wide targeting via hostnamed.

* Filesystem, tmpfiles, sysusers:
  - tmpfiles.d/root.conf sets / to mode 0555 in certain setups.
  - systemd-tmpfiles gains --inline and new k/K directives for
    capabilities.
  - New initrd services systemd-sysext-sysroot.service and
    systemd-confext-sysroot.service to merge extensions from initrd,
    plus a kernel kill switch to fully disable sysext/confext.

* Networking and resolved:
  - DHCP relay refactoring with sd-dhcp-relay backend; [DHCPServer]
    options deprecated in favor of [Network]/[DHCPRelay] + networkd.conf
    settings.
  - systemd-networkd adds MultiPathRoute= improvements, ModemManager
    "simple connect" integration, new offload controls in .link files,
    new DHCPv4 server options, and various Varlink/JSON interface
    updates.
  - systemd-resolved adds JSON static RR drop-ins, per-interface cache
    size tunables, improved DNSSEC handling for insecure answers,
    better stale cache retention, and reload of /etc/hosts on
    SIGHUP/Reload().
  - resolvectl now talks via Varlink; nss-resolve gains interface
    scoping via $SYSTEMD_NSS_RESOLVE_INTERFACE.

* Logging, coredumps, cryptsetup:
  - coredumpctl info gains JSON output; crashing thread TID/name and
    new COREDUMP_CODE field recorded.
  - systemd-cryptsetup/libcryptsetup moved behind dlopen(); new
    fixate-volume-key= support for binding crypttab entries to volume
    keys; systemd-cryptenroll now defaults to RSA-OAEP+SHA-256 for
    sealed keys.
  - systemd-creds improves TPM2 PCR handling to avoid errors on non-TPM
    systems.

* OOM and reliability:
  - systemd-oomd gains OOM rulesets and "prekill hook" integration via
    Varlink sockets.
  - systemd-oomd and PID1 adopt pidfds in more places.
  - systemd-run gets --output= to control verbose mode logging.

* Misc:
  - RootImageOptions=/ExtensionImages=/MountImages= parsing changed so
    last definition per partition wins, aligning with other option
    semantics.
  - systemd-sysext/confext refresh now suppresses unnecessary
    umount/mount by default, with --always-refresh= to force a
    refresh.
  - getty@.service now has [Install] section and must be explicitly
    enabled.
  - runlevel[0-6].target can be restored when building with
    -Dcompat-sysv-interfaces=yes, but SysV scripts themselves are
    gone.

AI-Generated: Claude-opus-4.6
Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 23, 2026
Changes: systemd/systemd@v259.5...v261.1
https://github.com/systemd/systemd/blob/main/NEWS

- Drop backported patches no longer needed (libfido2_cflags,
  tpm2-util PCR bank, fdset_new debug)
- Remove sysvinit-path/sysvrcnd-path meson options and
  systemd-sysv-install skeleton (removed upstream in 260)
- Add explicit meson disables for auto-detected features in
  systemd-systemctl-native to prevent host sysroot contamination
- Refresh 0003-Do-not-create-var-log-README.patch

Tested on qemu target with testsuite systemd.

Summary of changes in systemd from NEWS file:

* Drop legacy SysV init support: rc-local, sysv-generator, sysv-install
  removed; services must ship native systemd unit files going forward.

* Deprecate non-system users/groups in udev and systemd-networkd
  configs; usage still works but emits warnings and is scheduled for
  removal.

* Raise dependency baselines:
  - cryptsetup, elfutils, libblkid, libseccomp, glibc, libxcrypt,
    OpenSSL, Python all require newer versions.
  - Linux baseline moved from 5.4 to 5.10, recommended 5.14, with
    6.6 needed for full functionality; compatibility code for older
    kernels dropped.
  - musl minimum bumped from 1.2.5 to 1.2.6 when building with
    -Dlibc=musl.

* Rework dynamic linking: shift optional dependencies to dlopen() for
  libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk,
  libcryptsetup. libsystemd no longer guarantees a link to libm, so
  consumers relying on transitive libm must link it explicitly.

* sd-varlink API: temporary enum extension in 260-rc1 changed numeric
  values, reverted in -rc2. Binaries built against -rc1 headers must
  be rebuilt to avoid ABI mismatches.

* systemd-logind D-Bus CanPowerOff/CanReboot/CanSuspend/... gain new
  return values for inhibitors: "inhibited", "inhibitor-blocked",
  "challenge-inhibitor-blocked". Consumers assuming only "yes"/"no"
  need adjustment.

* Rename systemd-nspawn --user= to --uid=. The -u short option still
  works. Old forms --user NAME/--user=NAME remain accepted but are
  deprecated and emit a warning; bare --user now toggles user manager
  scope instead of taking an argument.

* Varlink io.systemd.Unit: several configuration fields switched from
  free-form strings to enums (ExecInputType, ExecOutputType,
  ProtectHome, CGroupController, CollectMode, EmergencyAction,
  JobMode). Wire format now uses underscores instead of dashes/plus
  (e.g. "tty-force" -> "tty_force", "kmsg+console" -> "kmsg_console").

* Announced removal of experimental systemd-sysupdated D-Bus API in
  favor of direct Varlink IPC to systemd-sysupdate; updatectl will be
  reworked accordingly.

* TPM / CC measurement changes:
  - systemd-stub now measures more artifacts into hardware CC
    registers (e.g. TDX RTMRs) in addition to TPM, altering expected
    CC values for devicetree, initrd, ucode addons, UKI profile.
  - New verity TPM NvPCR added; various components measure dm-verity
    images into it.
  - New ConditionSecurity=measured-os, and improved SMBIOS measurements
    in systemd-boot/systemd-stub.
  - New systemd-pcrosseparator.service adds a PCR separator
    measurement affecting PCRs 0-7,9,12-14 to isolate firmware vs OS
    measurements.

* Boot and UKI tooling:
  - systemd-stub introduces a "boot secret" passed via initrd for TPM
    fallback key material in non-TPM environments.
  - Keyboard layout and serial console are auto-propagated from UEFI
    to Linux; LoaderKeyboardLayout EFI variable used as fallback
    mapping.
  - Unified handling of UKI sidecars and "extra" Type #1 stanzas for
    confext/sysext/credentials.
  - systemd-boot avoids auto-boot into non-default UKI profiles and
    adds better fallback handling and new bootctl verbs/options.

* New IMDS subsystem:
  - hwdb gains 40-imds.hwdb to detect major public clouds and describe
    access to local IMDS endpoints.
  - systemd-imdsd provides Varlink IPC for IMDS access; systemd-imds
    imports IMDS data into credentials with measurements.
  - Optional network lockdown for IMDS via -Dimds-network=, with a
    "locked" default recommended for secure setups.

* New metrics / report framework:
  - systemd-report defines a Varlink-based metrics aggregation API
    under /run/systemd/report/.
  - Initial endpoints from systemd-networkd and the service manager in
    260; extended in 261 to system-wide and per-service/cgroup metrics,
    with Varlink and HTTP upload support.

* New mstack feature:
  - ".mstack/" directory layout defines overlayfs + bind mount stacks
    for services/containers.
  - RootMStack= unit setting and systemd-nspawn --mstack= support
    invoking services and containers from self-describing mstack
    images.
  - importctl pull-oci stores OCI images as mstack images.

* Manager and resource-control enhancements:
  - New per-unit settings: RootMStack=, PrivateUsers=managed,
    MemoryTHP=, CPUSetPartition=, RestrictFileSystemAccess= (BPF LSM),
    CPUPressureWatch=/CPUPressureThresholdSec=,
    IOPressureWatch=/IOPressureThresholdSec=.
  - New global knobs: DefaultMemoryZSwapWriteback=,
    EventLoopRateLimitIntervalSec=/EventLoopRateLimitBurst=,
    MinimumUptimeSec= (default 15s to avoid tight boot loops).
  - fd-store persistence improvements: LUO/Kexec handover support in
    PID1, FileDescriptorStorePreserve=on-success and user/manager
    plumbing to keep memfds and other state across session restarts
    and kexec.

* Varlink and IPC surface growth:
  - New Varlink methods for shutdown (PowerOff, Reboot, SoftReboot,
    Halt, Kexec) on io.systemd.Manager and io.systemd.Shutdown.
  - io.systemd.Unit.StartTransient(), io.systemd.Manager.ListUnitsByNames(),
    io.systemd.Job interface for job inspection/cancellation.
  - systemd-networkd Varlink updates: Reload(), Link.Describe(),
    Reconfigure(), Renew(), ForceRenew(), Up()/Down() and reporting
    of interface bit rates.
  - journalctl gains a Varlink GetEntries() interface.
  - New sd-varlink APIs for sentinel handling and protocol upgrade,
    plus wildcard type SD_VARLINK_ANY and per-UID connection limit
    reduction.

* Scheduling and rollout knobs:
  - CPUSchedulingPolicy=ext for SCHED_EXT.
  - ConditionFraction= for percentage-based staged rollouts keyed by
    machine ID and tag.
  - ConditionMachineTag= and new Tags= in /etc/machine-info for
    fleet-wide targeting via hostnamed.

* Filesystem, tmpfiles, sysusers:
  - tmpfiles.d/root.conf sets / to mode 0555 in certain setups.
  - systemd-tmpfiles gains --inline and new k/K directives for
    capabilities.
  - New initrd services systemd-sysext-sysroot.service and
    systemd-confext-sysroot.service to merge extensions from initrd,
    plus a kernel kill switch to fully disable sysext/confext.

* Networking and resolved:
  - DHCP relay refactoring with sd-dhcp-relay backend; [DHCPServer]
    options deprecated in favor of [Network]/[DHCPRelay] + networkd.conf
    settings.
  - systemd-networkd adds MultiPathRoute= improvements, ModemManager
    "simple connect" integration, new offload controls in .link files,
    new DHCPv4 server options, and various Varlink/JSON interface
    updates.
  - systemd-resolved adds JSON static RR drop-ins, per-interface cache
    size tunables, improved DNSSEC handling for insecure answers,
    better stale cache retention, and reload of /etc/hosts on
    SIGHUP/Reload().
  - resolvectl now talks via Varlink; nss-resolve gains interface
    scoping via $SYSTEMD_NSS_RESOLVE_INTERFACE.

* Logging, coredumps, cryptsetup:
  - coredumpctl info gains JSON output; crashing thread TID/name and
    new COREDUMP_CODE field recorded.
  - systemd-cryptsetup/libcryptsetup moved behind dlopen(); new
    fixate-volume-key= support for binding crypttab entries to volume
    keys; systemd-cryptenroll now defaults to RSA-OAEP+SHA-256 for
    sealed keys.
  - systemd-creds improves TPM2 PCR handling to avoid errors on non-TPM
    systems.

* OOM and reliability:
  - systemd-oomd gains OOM rulesets and "prekill hook" integration via
    Varlink sockets.
  - systemd-oomd and PID1 adopt pidfds in more places.
  - systemd-run gets --output= to control verbose mode logging.

* Misc:
  - RootImageOptions=/ExtensionImages=/MountImages= parsing changed so
    last definition per partition wins, aligning with other option
    semantics.
  - systemd-sysext/confext refresh now suppresses unnecessary
    umount/mount by default, with --always-refresh= to force a
    refresh.
  - getty@.service now has [Install] section and must be explicitly
    enabled.
  - runlevel[0-6].target can be restored when building with
    -Dcompat-sysv-interfaces=yes, but SysV scripts themselves are
    gone.

AI-Generated: Claude-opus-4.6
Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kraj pushed a commit that referenced this pull request Jul 23, 2026
Changes: systemd/systemd@v259.5...v261.1
https://github.com/systemd/systemd/blob/main/NEWS

- Drop backported patches no longer needed (libfido2_cflags,
  tpm2-util PCR bank, fdset_new debug)
- Remove sysvinit-path/sysvrcnd-path meson options and
  systemd-sysv-install skeleton (removed upstream in 260)
- Add explicit meson disables for auto-detected features in
  systemd-systemctl-native to prevent host sysroot contamination
- Refresh 0003-Do-not-create-var-log-README.patch

Tested on qemu target with testsuite systemd.

Summary of changes in systemd from NEWS file:

* Drop legacy SysV init support: rc-local, sysv-generator, sysv-install
  removed; services must ship native systemd unit files going forward.

* Deprecate non-system users/groups in udev and systemd-networkd
  configs; usage still works but emits warnings and is scheduled for
  removal.

* Raise dependency baselines:
  - cryptsetup, elfutils, libblkid, libseccomp, glibc, libxcrypt,
    OpenSSL, Python all require newer versions.
  - Linux baseline moved from 5.4 to 5.10, recommended 5.14, with
    6.6 needed for full functionality; compatibility code for older
    kernels dropped.
  - musl minimum bumped from 1.2.5 to 1.2.6 when building with
    -Dlibc=musl.

* Rework dynamic linking: shift optional dependencies to dlopen() for
  libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk,
  libcryptsetup. libsystemd no longer guarantees a link to libm, so
  consumers relying on transitive libm must link it explicitly.

* sd-varlink API: temporary enum extension in 260-rc1 changed numeric
  values, reverted in -rc2. Binaries built against -rc1 headers must
  be rebuilt to avoid ABI mismatches.

* systemd-logind D-Bus CanPowerOff/CanReboot/CanSuspend/... gain new
  return values for inhibitors: "inhibited", "inhibitor-blocked",
  "challenge-inhibitor-blocked". Consumers assuming only "yes"/"no"
  need adjustment.

* Rename systemd-nspawn --user= to --uid=. The -u short option still
  works. Old forms --user NAME/--user=NAME remain accepted but are
  deprecated and emit a warning; bare --user now toggles user manager
  scope instead of taking an argument.

* Varlink io.systemd.Unit: several configuration fields switched from
  free-form strings to enums (ExecInputType, ExecOutputType,
  ProtectHome, CGroupController, CollectMode, EmergencyAction,
  JobMode). Wire format now uses underscores instead of dashes/plus
  (e.g. "tty-force" -> "tty_force", "kmsg+console" -> "kmsg_console").

* Announced removal of experimental systemd-sysupdated D-Bus API in
  favor of direct Varlink IPC to systemd-sysupdate; updatectl will be
  reworked accordingly.

* TPM / CC measurement changes:
  - systemd-stub now measures more artifacts into hardware CC
    registers (e.g. TDX RTMRs) in addition to TPM, altering expected
    CC values for devicetree, initrd, ucode addons, UKI profile.
  - New verity TPM NvPCR added; various components measure dm-verity
    images into it.
  - New ConditionSecurity=measured-os, and improved SMBIOS measurements
    in systemd-boot/systemd-stub.
  - New systemd-pcrosseparator.service adds a PCR separator
    measurement affecting PCRs 0-7,9,12-14 to isolate firmware vs OS
    measurements.

* Boot and UKI tooling:
  - systemd-stub introduces a "boot secret" passed via initrd for TPM
    fallback key material in non-TPM environments.
  - Keyboard layout and serial console are auto-propagated from UEFI
    to Linux; LoaderKeyboardLayout EFI variable used as fallback
    mapping.
  - Unified handling of UKI sidecars and "extra" Type #1 stanzas for
    confext/sysext/credentials.
  - systemd-boot avoids auto-boot into non-default UKI profiles and
    adds better fallback handling and new bootctl verbs/options.

* New IMDS subsystem:
  - hwdb gains 40-imds.hwdb to detect major public clouds and describe
    access to local IMDS endpoints.
  - systemd-imdsd provides Varlink IPC for IMDS access; systemd-imds
    imports IMDS data into credentials with measurements.
  - Optional network lockdown for IMDS via -Dimds-network=, with a
    "locked" default recommended for secure setups.

* New metrics / report framework:
  - systemd-report defines a Varlink-based metrics aggregation API
    under /run/systemd/report/.
  - Initial endpoints from systemd-networkd and the service manager in
    260; extended in 261 to system-wide and per-service/cgroup metrics,
    with Varlink and HTTP upload support.

* New mstack feature:
  - ".mstack/" directory layout defines overlayfs + bind mount stacks
    for services/containers.
  - RootMStack= unit setting and systemd-nspawn --mstack= support
    invoking services and containers from self-describing mstack
    images.
  - importctl pull-oci stores OCI images as mstack images.

* Manager and resource-control enhancements:
  - New per-unit settings: RootMStack=, PrivateUsers=managed,
    MemoryTHP=, CPUSetPartition=, RestrictFileSystemAccess= (BPF LSM),
    CPUPressureWatch=/CPUPressureThresholdSec=,
    IOPressureWatch=/IOPressureThresholdSec=.
  - New global knobs: DefaultMemoryZSwapWriteback=,
    EventLoopRateLimitIntervalSec=/EventLoopRateLimitBurst=,
    MinimumUptimeSec= (default 15s to avoid tight boot loops).
  - fd-store persistence improvements: LUO/Kexec handover support in
    PID1, FileDescriptorStorePreserve=on-success and user/manager
    plumbing to keep memfds and other state across session restarts
    and kexec.

* Varlink and IPC surface growth:
  - New Varlink methods for shutdown (PowerOff, Reboot, SoftReboot,
    Halt, Kexec) on io.systemd.Manager and io.systemd.Shutdown.
  - io.systemd.Unit.StartTransient(), io.systemd.Manager.ListUnitsByNames(),
    io.systemd.Job interface for job inspection/cancellation.
  - systemd-networkd Varlink updates: Reload(), Link.Describe(),
    Reconfigure(), Renew(), ForceRenew(), Up()/Down() and reporting
    of interface bit rates.
  - journalctl gains a Varlink GetEntries() interface.
  - New sd-varlink APIs for sentinel handling and protocol upgrade,
    plus wildcard type SD_VARLINK_ANY and per-UID connection limit
    reduction.

* Scheduling and rollout knobs:
  - CPUSchedulingPolicy=ext for SCHED_EXT.
  - ConditionFraction= for percentage-based staged rollouts keyed by
    machine ID and tag.
  - ConditionMachineTag= and new Tags= in /etc/machine-info for
    fleet-wide targeting via hostnamed.

* Filesystem, tmpfiles, sysusers:
  - tmpfiles.d/root.conf sets / to mode 0555 in certain setups.
  - systemd-tmpfiles gains --inline and new k/K directives for
    capabilities.
  - New initrd services systemd-sysext-sysroot.service and
    systemd-confext-sysroot.service to merge extensions from initrd,
    plus a kernel kill switch to fully disable sysext/confext.

* Networking and resolved:
  - DHCP relay refactoring with sd-dhcp-relay backend; [DHCPServer]
    options deprecated in favor of [Network]/[DHCPRelay] + networkd.conf
    settings.
  - systemd-networkd adds MultiPathRoute= improvements, ModemManager
    "simple connect" integration, new offload controls in .link files,
    new DHCPv4 server options, and various Varlink/JSON interface
    updates.
  - systemd-resolved adds JSON static RR drop-ins, per-interface cache
    size tunables, improved DNSSEC handling for insecure answers,
    better stale cache retention, and reload of /etc/hosts on
    SIGHUP/Reload().
  - resolvectl now talks via Varlink; nss-resolve gains interface
    scoping via $SYSTEMD_NSS_RESOLVE_INTERFACE.

* Logging, coredumps, cryptsetup:
  - coredumpctl info gains JSON output; crashing thread TID/name and
    new COREDUMP_CODE field recorded.
  - systemd-cryptsetup/libcryptsetup moved behind dlopen(); new
    fixate-volume-key= support for binding crypttab entries to volume
    keys; systemd-cryptenroll now defaults to RSA-OAEP+SHA-256 for
    sealed keys.
  - systemd-creds improves TPM2 PCR handling to avoid errors on non-TPM
    systems.

* OOM and reliability:
  - systemd-oomd gains OOM rulesets and "prekill hook" integration via
    Varlink sockets.
  - systemd-oomd and PID1 adopt pidfds in more places.
  - systemd-run gets --output= to control verbose mode logging.

* Misc:
  - RootImageOptions=/ExtensionImages=/MountImages= parsing changed so
    last definition per partition wins, aligning with other option
    semantics.
  - systemd-sysext/confext refresh now suppresses unnecessary
    umount/mount by default, with --always-refresh= to force a
    refresh.
  - getty@.service now has [Install] section and must be explicitly
    enabled.
  - runlevel[0-6].target can be restored when building with
    -Dcompat-sysv-interfaces=yes, but SysV scripts themselves are
    gone.

AI-Generated: Claude-opus-4.6
Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants