From patchwork Sat Oct 31 03:57:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102579 Received: from mail-dy1-f170.google.com (mail-dy1-f170.google.com [74.125.82.170]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.693.1793419072250488607 for ; Fri, 30 Oct 2026 20:57:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=HF3pDYMo; spf=pass (domain: gmail.com, ip: 74.125.82.170, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f170.google.com with SMTP id 5a478bee46e88-36a0f27c9f4so2345691eec.1 for ; Fri, 30 Oct 2026 20:57:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419072; x=1794023872; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=JPuAh17Z75zUUlqU8a9X7cPjwBCk5xigg90QkZLUfU8=; b=HF3pDYMovgLloGS38uuY2vif3RU7NK4iPr7Gxq7wvCO9IkZB11+ZyX+4s+te0glEDU FiKTSK8MnnJN1dy398NC+VKnpS5/Hxpb/GWwAInAge609muhSqCjVTv1GZnUT6AIJ1uO zDMLS9pfNkfmsijyfMtJTRVtInL93T1btmwiVOZcRD+SQd1EgPp0U+pX/IWx5M3wfcpj ML8xQ7sAD3ZEYihk7eFp30Qp9G9k5+vO34tfGBz6Hwy05wtNP9pKWXdQyjlRD5h4kBtT LE7XTsL6cszITWDCBeIqIShYs4cDzRG9Zhkd5ZCIe6iY/NLdc6kWxjrFBNPtcNggQAgB rqrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419072; x=1794023872; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JPuAh17Z75zUUlqU8a9X7cPjwBCk5xigg90QkZLUfU8=; b=PTE9yoSa67i8m1cBjKBgCfSdW+d5qiatT+gAKdmS2k+UtlpAh+8txkPSWTbjjehnnz oQ8/kRbRQbEkPyJL1S0dOsTFEQrmnIgO4LktpllEBrMGk7Xwmp5zslAWmRqzFUvHpF23 QEQES/GvBGm14Yyrp7VxcBQQWdU7ft786gPVLiwjEafFLuOk4CawB7ZdtVx++/HviY62 A6Oe4C3iMF36wtpVngwxKqpzcp+zGuacI49Spe8R1yZPeHYuCcp37h0s77CLHph+juoe JWM/T66x2eU6LbUK7meV2irNw0eZ26Qg0Ui5XLzAJRhMEIwRrVm151ebb4dzqTncy/0j A1zA== X-Gm-Message-State: AFq9FYIGQO8rkoD8vb66E7Lb45iXI7A5Ct/6a/HHIAqDAu/alkBKhiZR rjyeqjysi1UxdkFzv6xiLbGJ/rrVkkxUI1n9x2AQHOU3MUFsHFnAfuOdBrDqsDZjELM= X-Gm-Gg: AYBFou17oQ4OEsTDJ5c5y4RxULi5+zGY1Rf1O3ITmUJuVVqYTEoHWcc/WJsrBpuloNR REAVuhmZnekoxe1r0agptShHMcXCturwDHgxGNOBlYDTknoYiJfzL7tuFpp82nyMOZvY9oV4SaR DEF6EW1IgjbRZ40V8yDZyNX+6JNx6D0FmrH6++xvjbF2AszRDxJMVlv6laseZ3iIB8vjHRoQMFi 9z4DkW5ZQQq9isVAADJkS5oDPR7LUQsjHqmEjUpoOvjqhBcp3QKUQTjhJMtnKeQ+LnBQX02w04k 0ZWStO6/vRHBlEWZiA5ZPvE3g+29Z6ixuDXogO9YstESMEqqoAiV8M02RkhUyH2T2/GMnpvgAgy DNTknvdmh94D5KEOD8METVUigfOIlixsyzXzz5xfBbo69v5LcidYb7+ART5IHUUh9ObmVyvOVUy 8jBJyWE9temBHHrFvmdufusqn3ImEo9+9SVaIT6Nwgl+48ZOm5X8fTm5ldHWjMUyWZbDVtAv9VS WBKoHCjqerclTjmmI8mfi1vVnuZzBsc28Wnn9rikhhVSBlqd5lvxkT9xYd7I6zUkh99OgGbN+KM Tb9uQP3v07IWqF/hTUor3XktqV08ORcmY/8Bs2ErMBy4KqC9QHPU+MmVnocE5G50o9t7sYDs3T1 rumx1bEMV+8ZBe7cw/vu0EMHP60wmV6IDcy6xFr4/U2s/xXm0bAVbzlzvmMRmg4o/fbFRaRqzNq i7SyOUsOk/X3c/k5gmwh+8lcgAv2tqHeIaNJxzdPN8IrKZIKtMpAaScWfg25ZXgAvgXDXkvfGw8 K+it6nOn1addclwZSL+ES+qr5ChHwEDKcAAmlx7zEpZ5THp934+oFU4VYVBNzKzAra2kfvw3/a3 aeKo X-Received: by 2002:a05:7301:6787:b0:361:306f:c32a with SMTP id 5a478bee46e88-36a42345b05mr7916192eec.11.1793419071507; Fri, 30 Oct 2026 20:57:51 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:50 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 01/10] python3-pyroute2: Add missing python3-resource runtime dependency Date: Fri, 30 Oct 2026 20:57:38 -0700 Message-ID: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:57:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131711 From: Khem Raj pyroute2/ndb/task_manager.py imports the resource module and it is pulled in when importing pyroute2, so every ptest module failed to import with: ModuleNotFoundError: No module named 'resource' Signed-off-by: Khem Raj --- meta-python/recipes-devtools/python/python3-pyroute2_0.9.7.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.9.7.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.9.7.bb index d83b65f6da..a0abcd2514 100644 --- a/meta-python/recipes-devtools/python/python3-pyroute2_0.9.7.bb +++ b/meta-python/recipes-devtools/python/python3-pyroute2_0.9.7.bb @@ -20,6 +20,7 @@ RDEPENDS:${PN} += " \ python3-pickle \ python3-pkgutil \ python3-pprint \ + python3-resource \ python3-shell \ python3-sqlite3 \ python3-unittest \ From patchwork Sat Oct 31 03:57:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102580 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.681.1793419073847338223 for ; Fri, 30 Oct 2026 20:57:53 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=X+n0T/1O; spf=pass (domain: gmail.com, ip: 74.125.82.172, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-33fb4680717so728914eec.1 for ; Fri, 30 Oct 2026 20:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419073; x=1794023873; darn=lists.openembedded.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=rhpetL3Av6z+JzJlKsX/TfCIVzK+aSR26uaQ1p25Hhk=; b=X+n0T/1O/48tWjNFuWq3gT8EfPSHqwhSD5vCIzOrXmWkHGW3a4Qw62obdnrro8C9/r tt02SO7oT+kZxwEVJ1LarHEcf5X/UhQz3pexGpTlqOJ7IYBB0ZDMYj8suwrZ2jQ8GCz/ QTGovjLRTwIHhJRPjp+nFnL0Ki2T9sBdOq2/fDGQLhE3n/2hHkN7PPiassdFOyXsN9d9 +QJBVKIyCYWGqc2xBDB4EGS17j8bgTbfcRF0FahplqALhQ2/LO5gqbGEoe9+PJxG/6y5 VzFppc3dxE/Qkby686wA2ibRT9zkZXJ4rI6FnO+JQbaIueoW4rAFEujt/6av1eA/jiv6 jLNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419073; x=1794023873; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rhpetL3Av6z+JzJlKsX/TfCIVzK+aSR26uaQ1p25Hhk=; b=WJmqc9PQVRaBbxN2CY9CgQnMx43ykpb0zIP5w7cWMWB1RwaC2mvVTIopoPRUmki+Vj rOf7byAITNUu0xw9yg41Oatqh0YSJU+X9legvFJ9MpVzZhXc+Aj9FhyKpgo0LJJvZ1Ik HgKfVRGiiCxe7iH7tL7HJIDE/QI4fojI+oRQ7a8sEUjUrdEGSJzWqMMbDt2M1yQaW6XA zPupl1tyCsMBlKxZLuQdWVGBUW3U+b5y7ncbWZtRXs53z9Ff0EMArBJQpDULITNIGgTf 6wcQgiApGp9XjVKiinBUiKRmcrnLxcAYoOn7m2yLse5kNX9cJfDdUwbOthx2Phn9QcZB nZ0w== X-Gm-Message-State: AFq9FYKOCYJS9HC+eA9pTyNhOCNLlf2tasXfVhHEkEgeiCvq6nl9/Xie xAXsC6w07KlI8KiEqW+URfIVik0l85MzMBgwnWioMgc+MZdrq7pGZGzrw+CBlotngK0= X-Gm-Gg: AYBFou3Okn4EGmY1Ujz1BNaM1JmMud5hvW64XOP9aOYahErYvqW4pNlMB3NbYb9FHVU m26rN9EgZ5GWHpQ61HZ5q7t+hzZf0nvIDXWYotFlvm2CXfe9MlzsO+FU0zsFOtXhpEhVBpJBbad P7UNWYB7Rfv8lJ5MeV7vhHvEl2xDD9uAPicuUTXndtQ9XWnhcbbySsmJqTTcpZc5voaQuophOFG wP6kXN3hVvsokXu/ZgLqZQSkBvsHn93/I7J6TlB6QI4pfndOyp17G/fBiNK8QgBCdeHlhoEujgg 8QuM0hVnoME7L0hOxT5oPh0kTRtEJjyiv9pDuYJIlPPn2PKN4pDtK6TZkK/sFfB20BGfYnEUfaO 6QFcL/kd6apWP4Irs8d0Swl1mc7TTDz46Hcbr0iodcHDT7OhjLkM/aBN8qxRoGyfjmAmhZithpH K9sVXYVVNhK1+FFZyRSSWpkMQzPAYAm9P0R9fx+MVIRex2i2H16rWbGIaXZRAyfrOQK/VjIwKtN NyGDMt1xfccYzK5M/CQQ+WtEdQVNLAljLasuG/zcb/uNFYVlEI0V/BIfugT1ShYT0nhr8RoHoaa XPXpLP9/vUzBbZFrJhWReyFa+3VzGPv1k3lDdudw/6Es7SFPB3ENAQ53y6M4spSpxJDDeFa3usO RzGY3bLs4yxfzhmzFeZFYYI1RjR72whTlR10fC/x7x5P4H/NvG6j4LCc7crHi89I0trbdsQUpkB RVj1BzZ7lJQ52b1Xr+7XAKARMkpcPtoq9KDbBuKEYJydEciUovGr+0akJ/y1EcFUxfXtmqbVRqI O+y1QcOhfb0EmS4fCeVbvpzq5Vn4/uFMsiHbl1sFPEyhBBeNQojV9Rzbrbmp7uRK5pt4iKR4rOC NFPp X-Received: by 2002:a05:693c:415a:20b0:36a:50f2:a5a5 with SMTP id 5a478bee46e88-36a50f2a73emr2292548eec.2.1793419073077; Fri, 30 Oct 2026 20:57:53 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:52 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 02/10] python3-platformdirs: Fix ptest failures on musl Date: Fri, 30 Oct 2026 20:57:39 -0700 Message-ID: <20261031035748.2130261-2-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:57:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131712 From: Khem Raj test_runtime_dir_unreachable_xdg_runtime_dir_warns hardcodes the glibc strerror(ELOOP) text "Too many levels of symbolic links", whereas musl reports "Symbolic link loop". Backport the upstream fix which uses os.strerror() instead. Signed-off-by: Khem Raj --- ...e-host-strerror-in-warning-tests-630.patch | 43 +++++++++++++++++++ .../python/python3-platformdirs_4.13.5.bb | 4 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 meta-python/recipes-devtools/python/python3-platformdirs/0001-test-unix-use-host-strerror-in-warning-tests-630.patch diff --git a/meta-python/recipes-devtools/python/python3-platformdirs/0001-test-unix-use-host-strerror-in-warning-tests-630.patch b/meta-python/recipes-devtools/python/python3-platformdirs/0001-test-unix-use-host-strerror-in-warning-tests-630.patch new file mode 100644 index 0000000000..e702c7e842 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-platformdirs/0001-test-unix-use-host-strerror-in-warning-tests-630.patch @@ -0,0 +1,43 @@ +From c243545c7ee2561ed0b5475c1b43f626d1284111 Mon Sep 17 00:00:00 2001 +From: Yusuf Efe <120668197+yuefdev@users.noreply.github.com> +Date: Wed, 28 Oct 2026 08:45:21 +0300 +Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20test(unix):=20use=20host=20strerror?= + =?UTF-8?q?=20in=20warning=20tests=20(#630)?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Co-authored-by: Bernát Gábor + +Upstream-Status: Backport [https://github.com/tox-dev/platformdirs/commit/c243545c7ee2561ed0b5475c1b43f626d1284111] +Signed-off-by: Khem Raj +--- + tests/test_unix.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/tests/test_unix.py b/tests/test_unix.py +index e68f2b8..1afb622 100644 +--- a/tests/test_unix.py ++++ b/tests/test_unix.py +@@ -1,6 +1,7 @@ + from __future__ import annotations + + import contextlib ++import errno + import importlib + import inspect + import os +@@ -401,8 +402,8 @@ _PROBLEMS: typing.Final = { + "mode-500": "has mode 0500, not 0700", + } + _UNREACHABLE: typing.Final = { +- "file": "Not a directory", +- "symlink-loop": "Too many levels of symbolic links", ++ "file": os.strerror(errno.ENOTDIR), ++ "symlink-loop": os.strerror(errno.ELOOP), + } + _DEFAULT_PREFIXES: typing.Final = { + "linux": "run/user", +-- +2.43.0 + diff --git a/meta-python/recipes-devtools/python/python3-platformdirs_4.13.5.bb b/meta-python/recipes-devtools/python/python3-platformdirs_4.13.5.bb index 40c7b25333..a5bb41f283 100644 --- a/meta-python/recipes-devtools/python/python3-platformdirs_4.13.5.bb +++ b/meta-python/recipes-devtools/python/python3-platformdirs_4.13.5.bb @@ -7,7 +7,9 @@ SRC_URI[sha256sum] = "05831adf87d392760f4b5c3a0a95579ab5a10b18b9b9bd43680dcb4754 inherit pypi python_hatchling ptest-python-pytest -SRC_URI += "file://run-ptest" +SRC_URI += "file://run-ptest \ + file://0001-test-unix-use-host-strerror-in-warning-tests-630.patch \ + " DEPENDS += " \ python3-hatch-vcs-native \ From patchwork Sat Oct 31 03:57:40 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102586 Received: from mail-dy1-f174.google.com (mail-dy1-f174.google.com [74.125.82.174]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.694.1793419075557085796 for ; Fri, 30 Oct 2026 20:57:55 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=n8ntpyCg; spf=pass (domain: gmail.com, ip: 74.125.82.174, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f174.google.com with SMTP id 5a478bee46e88-353804b591eso2156856eec.0 for ; Fri, 30 Oct 2026 20:57:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419075; x=1794023875; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=FhlLJrTQkyJBfhuIR/uzKNfVh+6ml6n4PbmhmrviERw=; b=n8ntpyCghGP9zivu4VmqErjNmSbV+NN7L9JQPasUi1Ju+/nW3Kbr6EMNsHlqUoRiaY rpO+eNcrC9z2LkjhztM4QIenXxllC7FKpdfz4VW3wYY8sqGP6VeOX4/Jh8CmkOiwAAMp Rtu72oSdyJbyZ6vm1U+tIwDpayZ52/s4UFUh2ILmN//tXgoOT/ZKiGtQ0EaEB8XNY2Sb wMYsImPMMMz3ArbN72fWb2ufVCmP92Y0RRYJNrcUe1nXCiZ43k9MB7/bguJJhLufkVrY 78lklJEcw/QpbfdeKBiaObLb7BxCmJmb2f/0vgMWawkcONPCuuZoDlHK64Ukf4etE2FZ rV9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419075; x=1794023875; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=FhlLJrTQkyJBfhuIR/uzKNfVh+6ml6n4PbmhmrviERw=; b=OC6iqXgcuEY2rZVHIhaJa0fEqElcstgKV0PFBUbzn4Unuti2CKRKLI0kcggcpOsgRM EePEFER1GaAkznPvCbJaZe4PAwF6T7iss5KXpXsaq7jypFYUtBhlYV/iwfXTZOlVQMHu RvLOmLACg+kIj/pacZRj+jzCH4k/YUwgg0AJo+ER6QrFnebdKkgQ+SdYnQjHV/ZqsxJc nhRVVT0jPjD3atwpcHE1RTpsbsWP6jT/DcNBG2WTb8q/cyB5dQDoOfPmsIIpxd2ALp7d 08p2eREHldB4yhNt9SqZioJ0ZdYcdbUWHERKbizyd4fL6p6OLCnOG3vzGc5FixQ6NT5V 37Og== X-Gm-Message-State: AFq9FYJUbN3sPxwoe02cXdytKVNKmdkbZnqX3a+POLXJmxrwfl4gksO3 0HMTan71BIWpMvdxF6hrU/ieN7GtwwlETwDQTceM96U+1/mvCRdsyV3z0GCDWWGMTyY= X-Gm-Gg: AYBFou1San7ECV/bTyIgyZXJo2zcj8b5FRCr9o1jfF4Ch/bG+7dJEcCIlmqSk8nj7iP Pu5piDe+JrZettIEMAAFUCXTLX3bbIkHTp1OgmzjRzr+OVxmKvg5nvmiFYpbXTQUhKBQtOfEFJi s9utRS7dE01YiQR7P+vK1oUK9nvWuaftD+K+/mU3EPZomnhZZTgt7harnVvtWThGbsUvt4HFOZ3 Bvnw8jkwjiosNPv1VDB4+pFJH0MPXA7IPEPQ6e2HCtfKwfBsnw7GK8JxVRyZjxeix6Y6liyO4qL o2Dzj3zKaUclp6J5nJgruXY9fuDOIM2psk+f6dW2XjUuxtJtdraX2rLT9mY+cIB9IW6Sa7aZasU Q/3bhc/Bh93e7ptQgy85utkOufb6zRWxwcUSjreNP4o33/vijbopoZSju7DFsxr6tl3oKHpG9OO sdp0N7yQP4YjetJGjjvCFfQWvBCXoWCohN72/K6Q4WLIG3jwEHM53NiW21SZuG1CobxxSEUmNqB 7NPNbcQPC0Fs6KWzQZHHoOa7VbhfVWgD2wufKm+pLpI9niOGD5tzy+51v0I+timNMxXvhVhhkCF H08l7e/VYl8WXEWcDDq8fJ2xfafij7maiuy4j5emBjpipaqKcpq+bpHRbUzn7Bliyrm7NDP2q2X xf4lOWGK32D0jPrz93mTH9BvxFs7eh3aLQpLwmdphdV7AVeGBH1UppDDIZxZ4VPBQrqbLqs4pqt Z1f524CpHworIX5/P2JcFY6JcZWHje5HC83sZix0GypCO150Wi2iBQ01O4UxsIfcbPE7wQZgEGO SaH65OBo7+6jTw77++yOw4oGe8u8T5ePb3Zm2+kX8jB5o6Mwb94J9mZOzhRlPLblqx/UzZO6Aou DEou X-Received: by 2002:a05:7301:648d:b0:36a:f55:5c6d with SMTP id 5a478bee46e88-36a42388ffamr6434295eec.14.1793419074730; Fri, 30 Oct 2026 20:57:54 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:53 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 03/10] python3-opentelemetry-api: Add missing runtime dependency Date: Fri, 30 Oct 2026 20:57:40 -0700 Message-ID: <20261031035748.2130261-3-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131713 From: Khem Raj opentelemetry-api requires typing-extensions. Signed-off-by: Khem Raj --- .../recipes-devtools/python/python3-opentelemetry-api_1.45.2.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-python/recipes-devtools/python/python3-opentelemetry-api_1.45.2.bb b/meta-python/recipes-devtools/python/python3-opentelemetry-api_1.45.2.bb index 4d903d1373..50d0ce77a4 100644 --- a/meta-python/recipes-devtools/python/python3-opentelemetry-api_1.45.2.bb +++ b/meta-python/recipes-devtools/python/python3-opentelemetry-api_1.45.2.bb @@ -7,3 +7,5 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI[sha256sum] = "d7b0008e21e5fd61cbe7a7f34ca3b6905a78ab677d9bc395e299359c75cda6b4" inherit pypi python_hatchling + +RDEPENDS:${PN} += "python3-typing-extensions" From patchwork Sat Oct 31 03:57:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102587 Received: from mail-dy1-f169.google.com (mail-dy1-f169.google.com [74.125.82.169]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.695.1793419076979084004 for ; Fri, 30 Oct 2026 20:57:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=NAlY9jma; spf=pass (domain: gmail.com, ip: 74.125.82.169, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f169.google.com with SMTP id 5a478bee46e88-3514b90bb89so2582564eec.1 for ; Fri, 30 Oct 2026 20:57:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419076; x=1794023876; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=3sFVfBe9TxG0ozxLSjNdk1BlM+5Tf72tl6IPNBAhlo8=; b=NAlY9jmatSVcrt3iw8tiEqTVxfRod7JU5iMTUEtp2WBSfzh9VX1vdQNtnR9CQ5hL/J RPxPlVaq0SyAS8HE7aiws2iUezUPuGxElYm4wQL88Qros1am/1QlGYbvahWhHeD0D7cl vyWJivR9NMWiOR8Oc7EVyTV7QCtIy9uw21BXKqBDnnT/URdXajNecgfYJGuPMG4NbKxz +2VuMr3rai4OuZC4JWbtHY13vfymqqtpfVKzFVXYLPJufA7hiolVYJX8CfgESCikVnMm nKmPo7z9Lkj5E2kWYXrFtff/cl2UUPx+0ploWar2uzBi5JlgDkAA0cCvME6iLe4ZXg3c 89NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419076; x=1794023876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=3sFVfBe9TxG0ozxLSjNdk1BlM+5Tf72tl6IPNBAhlo8=; b=Ra9V82FOcrEbxxGBYAZBWD4cKeP7DJVmvUj7xsdkbL0XrsRArd5YLGWcOgfiV7C7wJ Ev1apumUIL0UrmZCNjEUkBmpzc7RPxOqQSuxcovGQ/XEk7+I2l2d7bz+AHX0bMBJYQtp PvPrgkokoM51C/uTVbbBmFezmq3ShlOPqKf/itrc8E3Wu9gW5B3msWeax4u6QHGmQWKZ UjP7m+qtInW+iI4f66Z+r03EQ3Dyj479auBVqFIbisvx86PbNWfH9lyzzqxqh2EGqetz 1rJSpvfOBW7PSz7AI7XKLVtRgqRzcGlnFiSGCwUx6cP0roNSmlbELqzbhIxtvVfaXO3Z zb3A== X-Gm-Message-State: AFq9FYLdCwgfopIQAQ2yO2CahKib7+0Qyzdngmjzivgi/5C7Opdvz13E fwcVDO+hqzyCg95YDdQBOXzSfwu/wIV1Sc6GwXnOUAWINbrY61BMuoV/Tl8vPcs7nUo= X-Gm-Gg: AYBFou1DuXO3nSyE4nXes51ztYSs4q0bxZOaeC7McJQHW6l4EEbjZvZu0VYuSImaMS/ b+rN4p3uXTHGtsD9/SVJrJJTzjwj3cl1RLQRlLyQ8LDo+U/MMbnfecqZuimlQwslXH7s37SJql7 vXyXkH6ksUKU1dQwFFDS8W/Mu/Lwsb5bI7Ox8bYPbg2PFYbmVOZY6z8tu3wAZuLEoLwamyDnkTY zzGYIBYSr0lDxaqqJdUo+w0G20NdTeQw/S0EmkdYewkdxUSjWpfw0gjs+K4pgIIK763CQfGjq29 FR4PPrcDcJ75x0EaWomZXUov6JVrDrRiIDqM+5Vtv8zju2bFlAAka6mw0gIc2KWcV5+fAi83PZp YEaMpk9iYAfr0lBe1UWwzHXI0MYihfOx9I49Hd5PxYxqAgalaGv2JeCjvUKRJ6pX1b2SHigs8+m 6iyQ+N9iiV5NDnQJAV926pa/WVu0ygdOlvbobDX+KdPdB6NXiLOrU0CpGhhIPa8HYofhBMckqgV Mm49fTvPwqnOD5qS+br5LDovCf+tkoZ34bdO67fwjXqx2oxn861aLt5XEH5q2bd0+11+fVrLVle EPhTgYwh+3JMyfUvBDeL2qtvd0WPW6VKltIiQ+wYXkWx5Irx0z9qEqtvHVmicle39m5DerqVR+F GhXuo4L3iLIcLDAc+dww+z0dJekKOGSp2mZ02qhqXT0pERPQxVJzK5HneRaWycN/k5IZapxuR20 j4yAS7YnWKmBecieqikMrlyAqHktszeIa2opHj3Y/Gs3MxdfZbrUt1I3NmG9pJo55fOvyyJDnZ4 ohvDQqsDcBAkNaelRgIGAqslYsMgkpHugaVlai2iAIuFgBMUx+dAAsuHj1G3LZP5gilDc5vdqXI 3HNo X-Received: by 2002:a05:693c:8353:b0:369:5583:bf4c with SMTP id 5a478bee46e88-36a424064a8mr6158200eec.28.1793419076296; Fri, 30 Oct 2026 20:57:56 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:55 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 04/10] python3-opentelemetry-semantic-conventions: Add missing runtime dependencies Date: Fri, 30 Oct 2026 20:57:41 -0700 Message-ID: <20261031035748.2130261-4-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131714 From: Khem Raj opentelemetry-semantic-conventions requires opentelemetry-api and typing-extensions. Signed-off-by: Khem Raj --- .../python3-opentelemetry-semantic-conventions_0.66b1.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-python/recipes-devtools/python/python3-opentelemetry-semantic-conventions_0.66b1.bb b/meta-python/recipes-devtools/python/python3-opentelemetry-semantic-conventions_0.66b1.bb index 8684b0e35d..44a333255a 100644 --- a/meta-python/recipes-devtools/python/python3-opentelemetry-semantic-conventions_0.66b1.bb +++ b/meta-python/recipes-devtools/python/python3-opentelemetry-semantic-conventions_0.66b1.bb @@ -8,3 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI[sha256sum] = "497ca63bf383723411e8eaf60c8779e9877633c936bb641080adab59d0eb6ec8" inherit pypi python_hatchling + +RDEPENDS:${PN} += " \ + python3-opentelemetry-api \ + python3-typing-extensions \ +" From patchwork Sat Oct 31 03:57:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102581 Received: from mail-dy1-f173.google.com (mail-dy1-f173.google.com [74.125.82.173]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.682.1793419078455584706 for ; Fri, 30 Oct 2026 20:57:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=nX1RwD6S; spf=pass (domain: gmail.com, ip: 74.125.82.173, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f173.google.com with SMTP id 5a478bee46e88-36a0f27c9f4so2345773eec.1 for ; Fri, 30 Oct 2026 20:57:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419078; x=1794023878; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=8j7VduoM8xnRv+eIXnhJAIDd1AClOaDJghJc110XJBk=; b=nX1RwD6S8IMeqX6qjJzBQV2l6s16je7uVPKoWDoOgbx2S9t/t+u6Yx6NzB5EJMJINj +v3tXJuq47FVmFtvVYppxxxCK84yDMUpAv+bBTdgeuEZpavbg7lJEVPXiQClyZ8kUZMT 78yaOuHcsE3Y/W5SZNXyv63PEJSoypjkmfpOR1JN4SGs8Hz4hEqazzKTheS4WcpGP0LV rrOqQaIKWVhtoUDxxfKVy/e9iGBRff0AB6s8Vv5AWJI3b/JomJwTnDCvqtDB0WkAtVlv 6+9oHOaVcVXLvwaGcuwpQGAoOtcwgxFX3+pZyZEcb89n7CP41DCaJNjaYhKCA/5tC2hX cBwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419078; x=1794023878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=8j7VduoM8xnRv+eIXnhJAIDd1AClOaDJghJc110XJBk=; b=jZyo0K54WYkGswLSiW/J/wasW62C3E/LzR5qJbKfGEVEpYIkntIf9Q2hjqOR3djrQh 4fIOH1GbheYpdQDqNLT5MZxeMt2SX1TxbDm5kirIQ6Jv/ObMr1cWzyNkqXjLh3DXImr8 NrG2oGAJC8zX2c1PmSOD35tFAA6qXVJDL86pBhjIL/wINRG0sdaTLeTdwLfNP/8K/yjF sgAzp2GcRgUT6jUzwM/25t0GUtetrp4xSxHKXXN5ssKnKr5zRQgjvGJolqG8mS8eyxv7 L24Ue8oSBl9jcM+rcpS4HqMc19BZKcmiylF6AlsNMbQd74Fqy1NvPhjBoMLlosVdnaJK W1Ow== X-Gm-Message-State: AFq9FYI4IunRnzIS+NQpDpWAN0vBi29KTKX4nEUHbv2ho1Ic34nvtRm+ 3Xa1r8FXEs1zKX89H/DwYbsVotWUubtFeO3ESv7uocRBDKde5bLwBFfxE5CxGUCLc0E= X-Gm-Gg: AYBFou1uGP56IMg+MkwAByoCDfFYuDMoSQdNhHS2xiFMrHDN32JHNuCOV7WH+nVxFJr +4aVoWkCeSLHLOSYQ3AAuupR4s9U9/tVq05ecmc2NNMp49MERqneSRhN04fSP7b6BxW13F1WDTW +JsB0etheTNUV2mHnUypR7buWuxvjIWaLaLQC+RWboVVqnRRjOu/Ho9UHMiEvV0jvW5u1eK/MiS n4wCb87XKiDSJZPwQtuae6r8gX/pIScCBpbQWoKS0u9YrISXBD+UIyFjk2ZmpFLmxt5L8nbqCBT P2U4XegmL11NlhGKHCBzzU3WNA27wQ2ViTvndJbWpNPhdKA718yXhWGLRfj5GMt7XosNur20lky RBJ7ZdQh1NEP6UmTCbV6dXwikOcTLJmMyZO/m+XEw4F2QjfZzjgJc2n+Xncm6vU8wDqm4eGEJDT XYK2icuuums3OAECjAw7LHlh9t9I7VVc4UdfXv4Oi8l+51s7+FtQYxUka/z4iRzzThrxfR1z0Pf YcorP+M5FVodcTGp9o5m25bVx7n2r3+UnIo0+HfjvreyNOClgyoAilEPZtmbOywvuDj7+NxW/IN 9q7gUti5cr99zFQuuHzLCTTwU89GsZKSdq+aHPHiuQH3oCWd6Kpd0oCL7xxRu+PkzumtMql+VcG bHH/Gok9vOGsnuiOJB3QJ8g4EqyxTaObCNvPX6xE0sEmEW1DoCZtEaHIVszqVBzD7Kj3tXl6AAB 0Lb2JmrAhz7QssWzzuLfnsWpnYcJace8uQ8ZO+UCa9NdrKi3AqKwpzgAtXATecfqfemYc80pu2W mcSImgekmXBXGSwY5zHQhATPNQEj0SoZ1CwUxfZIDpyYnpOgdMmWLYNqF+EMFYCqf9Gs3uwz1ex QwpH X-Received: by 2002:a05:7301:e105:b0:36a:15cb:30bf with SMTP id 5a478bee46e88-36a42345851mr5877157eec.13.1793419077738; Fri, 30 Oct 2026 20:57:57 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:56 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 05/10] python3-opentelemetry-sdk: Add missing runtime dependencies Date: Fri, 30 Oct 2026 20:57:42 -0700 Message-ID: <20261031035748.2130261-5-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131715 From: Khem Raj opentelemetry-sdk requires opentelemetry-api, opentelemetry-semantic-conventions and typing-extensions, without them importing opentelemetry.sdk fails with: ModuleNotFoundError: No module named 'opentelemetry.semconv' Signed-off-by: Khem Raj --- .../python/python3-opentelemetry-sdk_1.45.2.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta-python/recipes-devtools/python/python3-opentelemetry-sdk_1.45.2.bb b/meta-python/recipes-devtools/python/python3-opentelemetry-sdk_1.45.2.bb index bba2b8bfe8..2cb352052d 100644 --- a/meta-python/recipes-devtools/python/python3-opentelemetry-sdk_1.45.2.bb +++ b/meta-python/recipes-devtools/python/python3-opentelemetry-sdk_1.45.2.bb @@ -7,3 +7,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI[sha256sum] = "7eec4de13dd21ff3a1670dcb0e02079e692736f94d733dfdce5af461d884248d" inherit pypi python_hatchling + +RDEPENDS:${PN} += " \ + python3-opentelemetry-api \ + python3-opentelemetry-semantic-conventions \ + python3-typing-extensions \ +" From patchwork Sat Oct 31 03:57:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102582 Received: from mail-dy1-f171.google.com (mail-dy1-f171.google.com [74.125.82.171]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.683.1793419079742353140 for ; Fri, 30 Oct 2026 20:57:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=Vi82JcBA; spf=pass (domain: gmail.com, ip: 74.125.82.171, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f171.google.com with SMTP id 5a478bee46e88-3550c917fd3so1845184eec.0 for ; Fri, 30 Oct 2026 20:57:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419079; x=1794023879; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=m6KKR9yswwOrkttn/B13N8pCX335pVZPIG9/orq2SPE=; b=Vi82JcBAZAAy7369DKB3jZUqDGhml7Wd6c8Mbb+0RFovpwITchWnufGAnQyJwa0nUM 7ttV5l0ywdXAmbqRtE65Z4kPAP4FQjv9D3anlj6eig77t4i0yD9hhYJniZAbmwIZTtO6 gLwy5NPujATZejLrArvHQFFnJnfQz3AnMD3xVY2x0ZDrBjwULf7s3JT0A7MOCnMEpI4M Edqytg+XdcpTyZPOBtPF7H2iG0AkyGL0dYH6QnLFCbeYatBmj3sIraIiyHjY/NpbDJDz zQ3i59W5wb4HWFdp8f3ylsWE9GnbKADKmEm6TxUwu+YWW+0pPTBhPJluFfl2Yet+WpXq m1qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419079; x=1794023879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=m6KKR9yswwOrkttn/B13N8pCX335pVZPIG9/orq2SPE=; b=YyD1CmLjGXVrzxmjYxda3yMcMAwvAHXv5Iz2V30ZoZCQiMqTBFYTc50Zkn94DkUuhe cZa1lmwX9TLPMuiCG4MuYi8fJ2Ebv+OSWYgBVVK9OTeidLq5qwOLR05hj8xeTbhlcMcm NPQtW91fj9Avz3CQdDTqT3uoe8X1p3UgS0MnzEW8prb2qHbj5glNJRYzJaeMD/lXOdYf Oah0DnuDDNmTM+/IP46OqkBBIfM887oPoMDDAEZ76iQ5OSGqBozGcXoyoZTmzoLTlwoj iO13oc0rQgLwgg+TSDnz8qsixMalJY1FUUNBMpu1C6qpTLbgdUf8iMKTKwouAM3Us3t/ gC8w== X-Gm-Message-State: AFq9FYI3A7ViMVgNDPpUMI2Pi2+B3pTIEYg7ndm5QXp3JnLFIoSyJBww E6fJ1duJJH/djp1BFeaouH56bRUMi9dkt5vi4jS96I8McJis/23dtWcjiABMeNV/BJ8= X-Gm-Gg: AYBFou1A7SLyaIQUbzVamvKcgavu1i3HDow8oof8+XYTPIIRXwsrzYh3YPF6nWAV9Q1 BVwhZh+Q5BJth8iABRryBd1BDOYmCcPc1b1a3XVpQWOW4dER8MH6odMhwEU4V0+LRwfmUo6P/Kh gPwCqdrl1ibkwvmMTdDVFY8J4fUKGk5XoU4PmqLBZxFxROWOCzkqxNgnJpj1o5Z8Z2sjyeR5UfJ zP4EWbzD/bIQWtmDlW7BfNKgVhOS+5x5KUfXH0PKDVK4bB5EHUZI2PK5RMDR/Xi/X354zYqiv3G 0P05LKRzx6hJAVPD1Uam5MY1FRU+YIWWBFuc3eOttNcu9cOakjesldwMRdoEs2z6YaeH/PgFIHw xJiIYtX9nUBgnj9NbVkyJ1DQ74L89wcFIuvIpH5C4BvJM0DAKyWs16ZJhe3EOrxYqzw8r9iNmuN v/bojrG3GmbasVvzY1sMZ7gEh0u3vG/s4A0/EoQffT73LYqLB3zoDjlp4poqXg3HxBvqJZ0FPvJ fibRVQwabw/4W+Wvg0y9fQ0vYXUbAG5XvMp7c51hvTN+PfIZDHHFbi+GiIwiFTE2bO4ftG97iuR HiTArCO4tGehhN4JScqTZqfx2BFiG4djm6pqjQPrkMkShvZmPW51U4W/UMt73BNOoqgli7vY2n7 xxT5hn1f5XFYTx0ll/bEHbWY3y00a9oUFMv9sGp+/LtBd9Q6tlLtFRKr2BCiH3Tr9His4uz3tx3 7RQIm6kfwiuD9IaSnHoEWjySoMOU05yWJnMYqem1HNl6fs7BEdtdw/LUuiwx2zbRo5K/8n3CSjs D73FR4BeYhBYboaBoQD80dXaTp87qK/JyjOnD9UsoahGEueysP55Xn1YbzwLfGxWqPytAEcaSOw Jkwg X-Received: by 2002:a05:693c:88c8:20b0:369:f2d6:4108 with SMTP id 5a478bee46e88-36a42401233mr6136931eec.10.1793419079090; Fri, 30 Oct 2026 20:57:59 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:58 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj , Khem Raj Subject: [meta-python][PATCH 06/10] python3-fastapi: Upgrade 0.141.1 -> 0.162.0 Date: Fri, 30 Oct 2026 20:57:43 -0700 Message-ID: <20261031035748.2130261-6-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131716 From: Khem Raj Release notes: https://github.com/fastapi/fastapi/releases * opentelemetry-api is now a runtime dependency * Add opentelemetry-sdk and git to ptest dependencies, used by the new telemetry and translation script tests * Ignore telemetry tests that need logfire, the opentelemetry OTLP exporter and the opentelemetry fastapi instrumentation, which are not packaged in meta-python * Fixes the ptest hang in test_frontend_dependency_restores_existing_dependency_stacks with starlette 1.10, fixed upstream in 0.142.0 Signed-off-by: Khem Raj --- .../recipes-devtools/python/python3-fastapi/run-ptest | 10 +++++++++- ...3-fastapi_0.141.1.bb => python3-fastapi_0.162.0.bb} | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) rename meta-python/recipes-devtools/python/{python3-fastapi_0.141.1.bb => python3-fastapi_0.162.0.bb} (89%) diff --git a/meta-python/recipes-devtools/python/python3-fastapi/run-ptest b/meta-python/recipes-devtools/python/python3-fastapi/run-ptest index b4d99ee36b..4a8a5b7a87 100644 --- a/meta-python/recipes-devtools/python/python3-fastapi/run-ptest +++ b/meta-python/recipes-devtools/python/python3-fastapi/run-ptest @@ -2,4 +2,12 @@ # ignore the test from the tutorial # those depends on python packages that are not part of OE -pytest --automake --ignore tests/test_tutorial +# the ignored telemetry tests need logfire, the opentelemetry otlp exporter +# and the opentelemetry fastapi instrumentation, which are not part of OE +pytest --automake --ignore tests/test_tutorial \ + --ignore tests/test_telemetry/test_background.py \ + --ignore tests/test_telemetry/test_data.py \ + --ignore tests/test_telemetry/test_environment_integrations.py \ + --ignore tests/test_telemetry/test_integrations.py \ + --ignore tests/test_telemetry/test_native_integrations.py \ + --ignore tests/test_telemetry/test_runtime.py diff --git a/meta-python/recipes-devtools/python/python3-fastapi_0.141.1.bb b/meta-python/recipes-devtools/python/python3-fastapi_0.162.0.bb similarity index 89% rename from meta-python/recipes-devtools/python/python3-fastapi_0.141.1.bb rename to meta-python/recipes-devtools/python/python3-fastapi_0.162.0.bb index 38a691953c..4c5a5b5dc8 100644 --- a/meta-python/recipes-devtools/python/python3-fastapi_0.141.1.bb +++ b/meta-python/recipes-devtools/python/python3-fastapi_0.162.0.bb @@ -4,7 +4,7 @@ HOMEPAGE = "https://fastapi.tiangolo.com/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=95792ff3fe8e11aa49ceb247e66e4810" -SRC_URI[sha256sum] = "e8822fc40db1e1858054d7a949a888695bc9bdce70139178e33bd2871a453ca1" +SRC_URI[sha256sum] = "6a22c1e2e6e32e0633ee7e170f00009a29b8228b16feb219ee42f32fd8d88a8f" SRC_URI += "file://run-ptest" @@ -22,14 +22,17 @@ RDEPENDS:${PN} += "\ python3-annotated-doc \ python3-fastapi-cli \ python3-json \ + python3-opentelemetry-api \ python3-pydantic \ python3-starlette \ python3-typing-extensions \ " RDEPENDS:${PN}-ptest += "\ + git \ python3-coverage \ python3-httpx \ + python3-opentelemetry-sdk \ python3-orjson \ python3-dirty-equals \ python3-pytest-httpx \ From patchwork Sat Oct 31 03:57:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102583 Received: from mail-dy1-f170.google.com (mail-dy1-f170.google.com [74.125.82.170]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.697.1793419081459947918 for ; Fri, 30 Oct 2026 20:58:01 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=ebGfBdmg; spf=pass (domain: gmail.com, ip: 74.125.82.170, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f170.google.com with SMTP id 5a478bee46e88-369f33df08eso2772647eec.0 for ; Fri, 30 Oct 2026 20:58:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419081; x=1794023881; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=A4WigBY1mSvw4gX6H1U9nT2An8VzMzyiA5wl+l+X4HU=; b=ebGfBdmg5Zn2cSPRd0zCmf/a6uDKrZdk4w3ruWCUSL2rUvcdc9dBa1LlDl4bW/hFyf fg4XpGbJOkEHCUaNyAIppFhuKXcwlQE2oCDlojjtnoUqbNwc87/PkYxpGBAyM3g75P61 +SMdEGVDCsB51pECJ30RmAt1iC7ruiGHaYZnO6bE+y0OgwdRd84SkaK3l0Kfp2DmFAw1 AYKeLvQVdFoErF11rLMUiF8J6XPA8fcAOpgTeCmskD6Z/Qk2NCt29mGsxWBi9RoBt75g BZtq4gldIRwDCeJB29SXYuCV/4i+5V+5wwqRQp7hjrmPKZwO41RG454BJsZeRoqFRSXZ VFuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419081; x=1794023881; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=A4WigBY1mSvw4gX6H1U9nT2An8VzMzyiA5wl+l+X4HU=; b=WB5tTrZgEbeBbVr8rQA4mJCZPeuH+loR18fmjECFA75QEhpitZfphESNgxjmskxo1H ShZyLtavEW8AQJsp6Ao1stMu9NBvy1cL11vOrutexWv1aU+6hOLPyFp1q4mCvf0088ta nnxKUcNluTkxLm3eT6shtA8qEL0E6TxNdzGo7klUugcXwTUW9DtYdzEzzvNlRJsuFCDA ypWGn2+qkJIOWkNhmGhe8Pd9fmHQi3LyJCLcm4XRLbuAaCfp3CDPRdZCb+NK4Zg8aUqr 3PvlYcf/usOgn6hfViiGszA6Nq5a86u99uFV0i2C563j6EZCJbyDv3ke5SU3sNMAqNFJ 7H9w== X-Gm-Message-State: AFq9FYLohOfnnXW8T62AS4Lj8xN5frLTqGpUCZ2kpgZnmAdiMLj3ypr5 crSqOEX/AyQgegfb5Ig8sQnfxAX/2k3bW72PLYAGEB/huWpzpimDygQkgn8yCE02/nA= X-Gm-Gg: AYBFou2x+8nOqplYHjvF0KBDs1ie13FmhaktZaCujUojPFFraXvL5WhFtf3q5V3JS6N mNJN5Fz450fmeVjJWsScgz6MeR8arMr/c/AdbCTWFtuVUFj6fAbUkOQTcOYy9Kf9uifpiXnDvoD erhhfCWDLHTcujFuaHtmEiCTr+Y89TfLYsdsmu8I3fh8EYeY6A+Sgz354oFZqXh8JwFZggqI5J5 DOVu/ba+fNFILlQUsKdeaoUs7HKWXb2GIfX+UMyiOGIXN263Q0uc5LqVnKh/s5qtPS5H/OFkdQL fJIezWqpgNcccBQsl0Khz0s3cacPECQ3K1yXProwTVosFDzx1oNDBkTEctbERAnG6cSMkNEL20b 9suW5NKnEMgoXPLu0W1DDcYzTA7LNfEJLWrV1u2mqiH1olAvWDzM0R56jW+K+BT/zM+Wclz0869 g030lG6TR/NnqpOcaLeGxRHdUR+WGAbXqF9FR5qM+lNT+vLp4+SsZTnQ6aLiKjrJs4WKU9EX8ai VsVNfkC6P3A74oXyAreoSDdJJy2A7OcuuK61Oo89PyBKffJ/K7O3/R/zLG/qiQkevUHXMlseZqu 4YNX9SzS72JCIVtGyGBNZJPmC702ZJxa8L7soj/61LhkWDOzPxHC9hsMxZl7Wgrr28T+rfmyoDc JpZ5uYRhHNy9K5ur3z1lKchdpbQwQoT0nzq+psH4+sOrwLx1tVRVAL/V917mAz4G8swiZUVEy36 a8z4RMoBjpSAzOCX2j8wC1fJn53+/YbxhObNm7ZDYIC+67yNXvM7LJrFcDg9b1oRlZI4mTtY1dg 4lKju2P9DJg36KTTTMcO4QF7kTOExgGigRb1mvS7qs+NaQQffHbWKDF9PjVDj1F2E7NTRCzWifN J/ze X-Received: by 2002:a05:7301:f09:b0:35c:ba31:6fef with SMTP id 5a478bee46e88-36a424438d2mr6122875eec.36.1793419080431; Fri, 30 Oct 2026 20:58:00 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.57.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:57:59 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-oe][PATCH 07/10] kernel-selftest: Fix building the net selftests Date: Fri, 30 Oct 2026 20:57:44 -0700 Message-ID: <20261031035748.2130261-7-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131717 The net selftests generate their netlink code with tools/net/ynl, which needs the netlink specs from Documentation/netlink, python3 with pyyaml and jsonschema, and the top-level MAINTAINERS file: ynl_gen_c.py finds the kernel root by walking up until it sees MAINTAINERS and loops forever when it is not there. libbpf needs elfutils and zlib, reuseport_bpf_numa numactl and tcp_mmap openssl. net/lib installs the whole ynl tree, so drop its build artifacts and bytecode, which trip the staticdev and buildpaths QA checks, and pass the prefix maps to clang so the BPF objects don't carry build paths either. The python tests load the netlink specs at runtime, so add pyyaml there as well. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- .../kernel-selftest/kernel-selftest.bb | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb index 018ac74b85..4254eccfd6 100644 --- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb @@ -5,6 +5,9 @@ LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS = "rsync-native llvm-native libcap" +# net: libbpf (elfutils, zlib), YNL code generation (python3-pyyaml-native, +# python3-jsonschema-native), reuseport_bpf_numa (numactl) and tcp_mmap (openssl) +DEPENDS += "elfutils numactl openssl python3-jsonschema-native python3-pyyaml-native zlib" S = "${UNPACKDIR}" @@ -49,7 +52,7 @@ PACKAGECONFIG[mm] = ",,libcap liburing numactl, libgcc bash" do_patch[depends] += "virtual/kernel:do_shared_workdir" do_compile[depends] += "virtual/kernel:do_install" -inherit module-base kernel-arch ptest siteinfo +inherit module-base kernel-arch ptest python3native siteinfo DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map" @@ -123,7 +126,7 @@ EXTRA_OEMAKE = '\ CC="${CC} ${DEBUG_PREFIX_MAP}" \ AR="${AR}" \ LD="${LD}" \ - CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS} -isystem ${S} -D__WORDSIZE=\'64\' -Wno-error=unused-command-line-argument" \ + CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} -ffile-prefix-map=${STAGING_KERNEL_BUILDDIR}=/usr/src/kernel -isystem ${S} -D__WORDSIZE=\'64\' -Wno-error=unused-command-line-argument" \ DESTDIR="${D}" \ V=1 \ ' @@ -136,6 +139,8 @@ EXTRA_OEMAKE:append:toolchain-clang = "\ CLEANBROKEN = "1" KERNEL_SELFTEST_SRC ?= "Makefile \ + Documentation/netlink \ + MAINTAINERS \ include \ kernel \ lib \ @@ -187,6 +192,13 @@ do_install() { if [ -e ${D}/usr/kernel-selftest/bpf/test_offload.py ]; then sed -i -e '1s,#!.*python3,#! /usr/bin/env python3,' ${D}/usr/kernel-selftest/bpf/test_offload.py fi + # net/lib installs the whole tools/net/ynl tree, including its build + # artifacts and the bytecode from running it at build time; only the + # python library is used at runtime. + if [ -d ${D}/usr/kernel-selftest/net/lib/ynl ]; then + find ${D}/usr/kernel-selftest/net/lib/ynl \( -name '*.a' -o -name '*.o' -o -name '*.d' \) -delete + find ${D}/usr/kernel-selftest/net/lib/ynl -name __pycache__ -type d -prune -exec rm -rf {} + + fi chown root:root -R ${D}/usr/kernel-selftest } @@ -227,6 +239,8 @@ FILES:${PN} += "/usr/kernel-selftest" # needs to enforce per-test timeouts; busybox has no timeout applet by default. # mount_setattr_test creates an ext4 image with mkfs.ext4. RDEPENDS:${PN} += "python3 perl perl-module-io-handle bash libcap libgcc coreutils e2fsprogs-mke2fs" +# The net python tests load netlink specs with the YNL library. +RDEPENDS:${PN} += "python3-pyyaml" INSANE_SKIP:${PN} += "libdir" From patchwork Sat Oct 31 03:57:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102584 Received: from mail-dy1-f175.google.com (mail-dy1-f175.google.com [74.125.82.175]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.698.1793419082318184138 for ; Fri, 30 Oct 2026 20:58:02 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=Sae5jCdZ; spf=pass (domain: gmail.com, ip: 74.125.82.175, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f175.google.com with SMTP id 5a478bee46e88-35c76e9614aso1982696eec.0 for ; Fri, 30 Oct 2026 20:58:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419082; x=1794023882; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=2KcAEJ/d//yNkNn25R3m5JPPTPab3qI1ELoNHffGJTw=; b=Sae5jCdZZgA00LJJTwWVHUb7KfO9XOMqN4SDciS0lU9hSUvIvh3wfct5EWIUt/32Px RB76ri6lohzlVlrHl5FszhFjsD9vm6n+avaYAcN94TQ9d04EnQt6PQENaY3p6aBGrTly oQQvs3oQynNxOv6eVCa6SK50bNX9Pbm0FSdDxB2mnFSw04qKJdhmx8JKjSVVox7VzVf+ dbRTr6t4EdybVnjM0+1LGY4wNFbRKjIBE4e71k09fQDqD6ngMiB7a03NK3N7UvpJLQ4R XV51AnpUNnwzYK9SenU7WeY09srpMsLQ9Otpwbxh0/Rhc+SMwg/ZUsXow1PQeWTPrB2W l/CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419082; x=1794023882; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=2KcAEJ/d//yNkNn25R3m5JPPTPab3qI1ELoNHffGJTw=; b=Do5F6KKGi5ubTDrwNRWj/9KCN7mcfWkKlkdf/uZ8oZlWjVUKhzB1X6ebmc0gyTE1aE bQOVtrbU6R0l9158gfVsqkPRqbkzPoRwIIOJBp9aR6QWKAJpaxYF1l9t9Ktg9bx2jTJr 8Wvua/mEKBJlCxC9mdYm+ojMQuiy9IaN9GFa7HxMHlEQx0HGMnxqlKLgx179EzVKJdQT nIYHvA0wphuNejfCAV2MnTRQsMAhGrK6GV5fT1xtV6HSAXpaV+MZ6+RqPNUeWm+AWm1G UOsqz/Gk9iquS5vJ0T2+lbGDWCZXenE5WrZGQX7mtlKX4xZr+Bza4N8uFVIbTPMEWVkZ 5Luw== X-Gm-Message-State: AFq9FYKJrcwAmM207d4+Z0w1S6fkhMA4vHJeX9NphbpQs+zYir1vyph1 cLMXN3iqJ5LRvIZkkfFLJX16FhaDdFfYm4wnsnsHMjQTEYL7N1A5nNNndOzLUs7CZMU= X-Gm-Gg: AYBFou3qKMLvhOVNzRiBcL4CgSRMYsJp5GITvSu3OxTlwrshzqb9mt5akgucvJzQ6Oc sbbX/wsTsAWub/SvyAm7dJminNH6qzGxopUbMcb1Rz6SmvcXSj+MpbrfAPfyIzc4yiQe/CIjPiT zWp1zrAViSwb4B6l76RHfBRbKi3aKNxO+szxPYzo7bmArrdlmDU6avZApjqm6J8B1Df1mGi5r92 XEU4e5tsamXb9LDzzMrlmlGF+3BoZT74zDu2PbjlDzyf5pJIgPum/8FZHxGcdYqBC2Mpyh5SbHi 4LQ7ELYpBg3kYvDW6YbHBfdYi5ct2DEU9Z3pgnJf1j42HBn8d42FFNwVmkhj31Si/tMtDL8DQFi Xhw+jLCidC7f6hrXoqIKI+t20GhYPeh/sQMX/YTSPGpwcSALI5TWwMKB17tmnUC2ubDXKYOrx1i p6gZNtPTEMoI3tFR/bhLlYOiNcrPWRw7eCh4ArPjxIDxQxq75XTGYAb7g1bIbFxB5MWRBn44ZDi zBOJXoJuS598CAjxIVMzzWdWBHCXypZPPrvhZQ/hTkzfuWSLLpJ9bgrZiJcqw44PcDs00R+CMPd qu3m5i0dRRSUG3Wva51e1ggGAiJgsLqqJ339AjwfXYp7mcGT4Igcm8M+m6yudCn1bSTJ9gc8uft 8TUg5WwjSy7Mj45HzQ2iyuvhGQm9K8O3O598KKs/tXoE/4fCx5GuduQx71sE8SUn+WQjAFi1EoK E38lnSI6818MRw1HslJKbvWGAHkiLwHwpotK23TgD17fc8NyEjv9LBowWOMSABxraRZ1aVnYEQd tjOBi15uWxAi9+IwUNuwpscJ52/vehgKktk2Jd3x4ZQz/0bgCUTrfhniQTqMrD/Y6wbb9BifWIY Y49oJ3/mW8jQdeJCpUx/QkI4RQ== X-Received: by 2002:a05:693c:8803:20b0:361:6884:78b1 with SMTP id 5a478bee46e88-36a423bf728mr6346215eec.28.1793419081561; Fri, 30 Oct 2026 20:58:01 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.58.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:58:01 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-oe][PATCH 08/10] kernel-selftest: Add the modules and tools the tests need Date: Fri, 30 Oct 2026 20:57:45 -0700 Message-ID: <20261031035748.2130261-8-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131718 Many selftests modprobe what they need (gpio-mockup, netdevsim, vrf, the tc qdiscs, classifiers and actions, ...), but the image only had a couple of kernel modules, so recommend all of them. The net tests also need real iproute2, iputils ping and ping6, ethtool, iperf3, socat, jq, bc and taskset; busybox ip and ping lack most of the options they use, and busybox's ping6 has no -M, which pmtu.sh picks up over ping when it exists. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb index 4254eccfd6..b1266fe553 100644 --- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb @@ -241,6 +241,14 @@ FILES:${PN} += "/usr/kernel-selftest" RDEPENDS:${PN} += "python3 perl perl-module-io-handle bash libcap libgcc coreutils e2fsprogs-mke2fs" # The net python tests load netlink specs with the YNL library. RDEPENDS:${PN} += "python3-pyyaml" +# Tools the net selftests use; busybox ip and ping lack most of the options +# they need. +RDEPENDS:${PN}-ptest += "bc ethtool iperf3 iproute2 iproute2-bridge iproute2-nstat \ + iproute2-ss iproute2-tc iptables iputils-arping iputils-ping iputils-ping6 jq socat \ + util-linux-taskset" +# Many selftests modprobe the modules they need (gpio-mockup, netdevsim, vrf, +# the tc qdiscs, classifiers and actions, ...) and fail without them. +RRECOMMENDS:${PN} += "kernel-modules" INSANE_SKIP:${PN} += "libdir" From patchwork Sat Oct 31 03:57:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102585 Received: from mail-dy1-f182.google.com (mail-dy1-f182.google.com [74.125.82.182]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.699.1793419084228046213 for ; Fri, 30 Oct 2026 20:58:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=AttpgwNJ; spf=pass (domain: gmail.com, ip: 74.125.82.182, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f182.google.com with SMTP id 5a478bee46e88-3282db206d3so702674eec.0 for ; Fri, 30 Oct 2026 20:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419084; x=1794023884; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=l4i+Y9chIIR5N3zp/b0JshR1NWpFba9SPhxGPLPIMN8=; b=AttpgwNJAaiVoC7qrvFPqgrpg9Nb3+32BHbdkBVoqjVPDx9yqCA5Q/Hx1HXYsul06q 5bPVYZ0x/jE/rOTWu7yBQrl9eLyelRsvq7TxgsylpUfIKRUos5w0nYKnQR28mylYv+rb hCagyBYyEzs1n5xZUFlrhjClJLojrdoag9cGlcr5i25F3Nd+9ADea4SPl/2qgnSTMm6g z7KfFFsfmnSNhSvkvUTWVlyZsZHCEkZXoQEjPJzap5rXni9XR7JqT8Aajm4vP2pS8RBu +Ctmu19192KcFf+p7e1abKJnXPkQWvk4ywa8zdI/jwQ8F7PeuqDv+i9owTxooGHS+qje /g9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419084; x=1794023884; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=l4i+Y9chIIR5N3zp/b0JshR1NWpFba9SPhxGPLPIMN8=; b=IBeT+mWljvvlqZOK+rzwFXfjfi8mLBabznf7tiT0bGdadjkbsqX+ahgycKQstndpf7 nCKaNDzCmVslPdcJIHNLxT/cH/O+9ddkMOX8Spni4Gpcpb7SinRAwn2cpXNx0PehKBVi O3Et8Jhets0ZT1CO0UWtcjUq1jkvaEBKuxUhGNcuivNh6w5nYrF90GsBFy+9p0KcNHGZ AQmeV0rKpVUhrWPD5fqssfTh/GwMiLwqft4GcixnjqhGdCGqcXoPCLvMaAovQY2auEE5 yuB8NjpC88tFroghw7EJfpz4kezlXkKHju36pDOVA81wBniLV42yq4NRMko5OiwuS60M TXoA== X-Gm-Message-State: AFq9FYKaCJURcIe+c3p42LrCgWGTc5EXhsD7p2ZSWWn/e2+O6CvsvzEp WykJQPSOq8k7NTYSMB9qvPWA4NiI3WDyhfZqwgr4CLwV9pW2sV7wxjio81fDorzbqA8= X-Gm-Gg: AYBFou17A3r+5yXFIrHciZRgWkUqfDvNPcsv1LkgartC9LIRMfnBWvzVjXkFGUBf6Uc yeXjLhdkDQgSeX/Z8RQbf2lEJZWCm5UFdNjy+D6njM1jmUmTe0AjvYc1ZyU2aVYjSnpZWiGcniq JKMMkwqszNevnjSForrcbTxq7jRnGJi7TgaPOcIeUxdVDHMGAKrTjn3uVLFpQEdjxYepL6cWFr0 tMoitVOhG0wyj1VoGGE2ZY1pJl830Ow1LL0bEFlOn9YwSK1bc8Bv5oDNgn/BAu7EI+Zq61MSZvo FUA7Qd0knFsKZ06+1lpSIv7K81S96rLhNGMlQW0zPXexa4r8jSvnvWhIlVkjPnWkLhmX9OiX6lf +2WrK2G1qo9PeUYyCPAaN1fKuLLll77HxSjsrFg+J7lwC+4qpezP21BNeMlYwhjhiczI6wQgkSB YbA1gWRkZVyQ5QXag8NcsnzDkvu77BSfgDwPuiaHUS3pymtr8x6mO9TWA+M+ZPpVkWlvurOkzfB LThGQo4YZU45eh2IGKEjKVfyBzX8K4Nv1mly29ZBlgilbx8guTPInyOhOzQRFff6qBmzprLbJwl rs+B/1LYgtL2uHq0b66BnkfRiKUYUa9jmHJJ0DSHgqlS17bacXQSKhBZAEcNYEJPtLi3xi1cY1l +CFy5188uFGJ147VqLc7Y1wg6fr2L+UEHGSr4C0XrhnYkyTHXY4Zc0X3ursNAR05bjBoNdOYiUP 1/15hd1gYYKOtw9ToLQDF0ubcSQVShxz+ZjjScGJiYZ8/lKqOkKQ7Y+UmkWGeV9YmetK7gYLfCX 661bXLRQWl8pcpaOUCtj/bXQ4g2idwzKJzM7wn2WmbQEqyoOzzf9u3++CA2CgaWatQQsw9+iaJk ncUoBrdX7/+ql/T7uuqUaeEvGw== X-Received: by 2002:a05:7301:d198:b0:360:db68:3264 with SMTP id 5a478bee46e88-36a42340756mr6437125eec.6.1793419083181; Fri, 30 Oct 2026 20:58:03 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.58.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:58:02 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-oe][PATCH 09/10] kernel-selftest: Fix tests that fail on qemu Date: Fri, 30 Oct 2026 20:57:46 -0700 Message-ID: <20261031035748.2130261-9-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131719 Add fixes for tests that fail on qemux86-64 because of bugs in the tests, and make tests that fail when an optional kernel feature or device is missing skip instead: - core: unshare_test fails when fs.nr_open is at its maximum - proc: proc-empty-vm treats pkey_alloc() ENOSPC as a failure, and read fails when a task exits while it walks /proc - sched: cs_prctl_test is not installed from the output directory and fails without core scheduling - gpio: gpio-mockup expects an empty range to be accepted, and gpio-cdev-uaf fails without CONFIG_GPIO_CDEV_V1 - splice: short_splice_read fails without test_module - syscall_user_dispatch: sud_benchmark needs a frame pointer - lsm: lsm_get_self_attr_test checks the wrong errno and lsm_list_modules_test fails without securityfs - cgroup: test_cpu fails without CONFIG_CFS_BANDWIDTH - binderfs: binderfs_stress fails without binderfs - kvm: nx_huge_pages_test.sh fails without KVM - watchdog: watchdog-test fails without a watchdog device - net: udpgro_fwd.sh hangs the whole run without vxlan, and icmp.sh fails without tcpdump AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- .../kernel-selftest/kernel-selftest.bb | 18 +++ ...-skip-the-cpu.max-tests-without-CONF.patch | 69 ++++++++++ ...ix-unshare_test-with-large-fs.nr_ope.patch | 82 +++++++++++ ...stems-binderfs-skip-binderfs_stress-.patch | 65 +++++++++ ...xpect-gpio-mockup-to-reject-an-empty.patch | 52 +++++++ ...kip-the-gpio-cdev-uaf-v1-tests-witho.patch | 127 ++++++++++++++++++ ...ip-nx_huge_pages_test.sh-without-KVM.patch | 36 +++++ ...eck-lsm_get_self_attr-errno-before-a.patch | 45 +++++++ ...ip-correct_lsm_list_modules-without-.patch | 33 +++++ ...ftests-net-icmp-skip-without-tcpdump.patch | 30 +++++ ...pgro_fwd-don-t-hang-when-the-iperf3-.patch | 33 +++++ ...pgro_fwd-skip-the-UDP-tunnel-tests-w.patch | 52 +++++++ ...roc-empty-vm-treat-pkey_alloc-ENOSPC.patch | 35 +++++ ...ead-tolerate-tasks-exiting-during-th.patch | 70 ++++++++++ ...install-cs_prctl_test-from-the-outpu.patch | 34 +++++ ...skip-cs_prctl_test-when-core-schedul.patch | 55 ++++++++ ...-skip-the-kernfs-checks-without-test.patch | 45 +++++++ ...l_user_dispatch-build-sud_benchmark-.patch | 35 +++++ ...og-skip-when-there-is-no-watchdog-de.patch | 46 +++++++ 19 files changed, 962 insertions(+) create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-cgroup-skip-the-cpu.max-tests-without-CONF.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-core-fix-unshare_test-with-large-fs.nr_ope.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-filesystems-binderfs-skip-binderfs_stress-.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-expect-gpio-mockup-to-reject-an-empty.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-skip-the-gpio-cdev-uaf-v1-tests-witho.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-kvm-skip-nx_huge_pages_test.sh-without-KVM.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-check-lsm_get_self_attr-errno-before-a.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-skip-correct_lsm_list_modules-without-.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-icmp-skip-without-tcpdump.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-don-t-hang-when-the-iperf3-.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-skip-the-UDP-tunnel-tests-w.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-proc-empty-vm-treat-pkey_alloc-ENOSPC.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-read-tolerate-tasks-exiting-during-th.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-install-cs_prctl_test-from-the-outpu.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-skip-cs_prctl_test-when-core-schedul.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-splice-skip-the-kernfs-checks-without-test.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-syscall_user_dispatch-build-sud_benchmark-.patch create mode 100644 meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-watchdog-skip-when-there-is-no-watchdog-de.patch diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb index b1266fe553..96b837fb20 100644 --- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb @@ -26,6 +26,24 @@ SRC_URI += "file://run-ptest \ file://0001-selftests-filelock-fix-the-test-plan-count-in-ofdloc.patch \ file://0001-selftests-cgroup-memcontrol-keep-anon-page-touches-f.patch \ file://0001-selftests-filesystems-idmapped_tmpfile-chown-the-lay.patch \ + file://0001-selftests-core-fix-unshare_test-with-large-fs.nr_ope.patch \ + file://0001-selftests-proc-proc-empty-vm-treat-pkey_alloc-ENOSPC.patch \ + file://0001-selftests-proc-read-tolerate-tasks-exiting-during-th.patch \ + file://0001-selftests-sched-install-cs_prctl_test-from-the-outpu.patch \ + file://0001-selftests-sched-skip-cs_prctl_test-when-core-schedul.patch \ + file://0001-selftests-gpio-expect-gpio-mockup-to-reject-an-empty.patch \ + file://0001-selftests-gpio-skip-the-gpio-cdev-uaf-v1-tests-witho.patch \ + file://0001-selftests-splice-skip-the-kernfs-checks-without-test.patch \ + file://0001-selftests-syscall_user_dispatch-build-sud_benchmark-.patch \ + file://0001-selftests-lsm-check-lsm_get_self_attr-errno-before-a.patch \ + file://0001-selftests-lsm-skip-correct_lsm_list_modules-without-.patch \ + file://0001-selftests-cgroup-skip-the-cpu.max-tests-without-CONF.patch \ + file://0001-selftests-filesystems-binderfs-skip-binderfs_stress-.patch \ + file://0001-selftests-kvm-skip-nx_huge_pages_test.sh-without-KVM.patch \ + file://0001-selftests-watchdog-skip-when-there-is-no-watchdog-de.patch \ + file://0001-selftests-net-udpgro_fwd-don-t-hang-when-the-iperf3-.patch \ + file://0001-selftests-net-udpgro_fwd-skip-the-UDP-tunnel-tests-w.patch \ + file://0001-selftests-net-icmp-skip-without-tcpdump.patch \ ${@bb.utils.contains('PACKAGECONFIG', 'mm', '${MM_PATCH}', '', d)} \ " diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-cgroup-skip-the-cpu.max-tests-without-CONF.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-cgroup-skip-the-cpu.max-tests-without-CONF.patch new file mode 100644 index 0000000000..d879b8b846 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-cgroup-skip-the-cpu.max-tests-without-CONF.patch @@ -0,0 +1,69 @@ +From 889f34043a639015b2f844801a6e83bd3eaafe32 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:02:43 -0700 +Subject: [PATCH] selftests/cgroup: skip the cpu.max tests without + CONFIG_CFS_BANDWIDTH + +The cpu controller only provides cpu.max when the kernel is built with +CONFIG_CFS_BANDWIDTH. Without it, test_cpucg_max and +test_cpucg_max_nested fail to write the file and report a failure: + + not ok 8 test_cpucg_max + not ok 9 test_cpucg_max_nested + +Skip both tests when cpu.max does not exist. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/cgroup/test_cpu.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/tools/testing/selftests/cgroup/test_cpu.c b/tools/testing/selftests/cgroup/test_cpu.c +index 8f96bfd..5fbdd24 100644 +--- a/tools/testing/selftests/cgroup/test_cpu.c ++++ b/tools/testing/selftests/cgroup/test_cpu.c +@@ -654,6 +654,7 @@ static int test_cpucg_max(const char *root) + long usage_usec, n_periods, remainder_usec, expected_usage_usec; + char *cpucg; + char quota_buf[32]; ++ char buf[64]; + + snprintf(quota_buf, sizeof(quota_buf), "%ld", quota_usec); + +@@ -664,6 +665,12 @@ static int test_cpucg_max(const char *root) + if (cg_create(cpucg)) + goto cleanup; + ++ /* cpu.max needs CONFIG_CFS_BANDWIDTH */ ++ if (cg_read(cpucg, "cpu.max", buf, sizeof(buf))) { ++ ret = KSFT_SKIP; ++ goto cleanup; ++ } ++ + if (cg_write(cpucg, "cpu.max", quota_buf)) + goto cleanup; + +@@ -718,6 +725,7 @@ static int test_cpucg_max_nested(const char *root) + long usage_usec, n_periods, remainder_usec, expected_usage_usec; + char *parent, *child; + char quota_buf[32]; ++ char buf[64]; + + snprintf(quota_buf, sizeof(quota_buf), "%ld", quota_usec); + +@@ -735,6 +743,12 @@ static int test_cpucg_max_nested(const char *root) + if (cg_create(child)) + goto cleanup; + ++ /* cpu.max needs CONFIG_CFS_BANDWIDTH */ ++ if (cg_read(parent, "cpu.max", buf, sizeof(buf))) { ++ ret = KSFT_SKIP; ++ goto cleanup; ++ } ++ + if (cg_write(parent, "cpu.max", quota_buf)) + goto cleanup; + +-- +2.0 diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-core-fix-unshare_test-with-large-fs.nr_ope.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-core-fix-unshare_test-with-large-fs.nr_ope.patch new file mode 100644 index 0000000000..f501ca11b8 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-core-fix-unshare_test-with-large-fs.nr_ope.patch @@ -0,0 +1,82 @@ +From df0b7e0ea59c43708cff8c7e34da5e2f8d430e5e Mon Sep 17 00:00:00 2001 +From: Konstantin Khorenko +Date: Fri, 14 Aug 2026 18:57:09 +0200 +Subject: [PATCH] selftests/core: fix unshare_test with large fs.nr_open + +The test assumes fs.nr_open is close to the default 1048576, but some +systems set it much higher (e.g. 1073741816). This is systemd's doing: +since systemd v240 (2018), PID 1 bumps fs.nr_open and fs.file-max to their +largest possible values on boot, as file descriptors are already accounted +for by memcg [1]. + +In that case, dup2() to nr_open + 64 requires the kernel to allocate a +file descriptor table with ~1 billion entries, which fails with ENOMEM. + +On a kernel that already carries 04a2c4b4511d1, dup2() no longer fails +with ENOMEM. The allocation is now rejected up front and the caller +gets EMFILE instead, without the WARNING, but the test still fails. + +Cap the nr_open value used for the test's own arithmetic to a known +reasonable base value (1048576) and restore the true original value once +the test has completed. + +Link: https://lore.kernel.org/20260814165709.513263-1-khorenko@virtuozzo.com +Link: https://github.com/systemd/systemd/commit/a8b627aaed409a15260c25988970c795bf963812 [1] +Upstream-Status: Backport [https://git.kernel.org/torvalds/c/df0b7e0ea59c] +Signed-off-by: Konstantin Khorenko +Signed-off-by: Eva Kurchatova +Signed-off-by: Andrew Morton +Cc: Shuah Khan +Cc: Wei Yang +Cc: +Signed-off-by: Khem Raj +--- + tools/testing/selftests/core/unshare_test.c | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/core/unshare_test.c b/tools/testing/selftests/core/unshare_test.c +index ffce75a6c228..d40e963dd520 100644 +--- a/tools/testing/selftests/core/unshare_test.c ++++ b/tools/testing/selftests/core/unshare_test.c +@@ -40,6 +40,14 @@ TEST(unshare_EMFILE) + + ASSERT_EQ(sscanf(buf, "%d", &nr_open), 1); + ++ /* ++ * Cap nr_open for the duration of the test to avoid ENOMEM from a ++ * huge fd table allocation; buf/n keep the real original value so ++ * fs.nr_open can be restored to it once the test is done. ++ */ ++ if (nr_open > 1024 * 1024) ++ nr_open = 1024 * 1024; ++ + ASSERT_EQ(0, getrlimit(RLIMIT_NOFILE, &rlimit)); + + /* bump fs.nr_open */ +@@ -73,10 +81,13 @@ TEST(unshare_EMFILE) + + if (pid == 0) { + int err; ++ char buf3[32]; ++ ssize_t n3; + +- /* restore fs.nr_open */ ++ /* restore fs.nr_open to the (possibly capped) test baseline */ ++ n3 = sprintf(buf3, "%d\n", nr_open); + lseek(fd, 0, SEEK_SET); +- write(fd, buf, n); ++ write(fd, buf3, n3); + /* ... and now unshare(CLONE_FILES) must fail with EMFILE */ + err = unshare(CLONE_FILES); + EXPECT_EQ(err, -1) +@@ -89,6 +100,10 @@ TEST(unshare_EMFILE) + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); ++ ++ /* restore the real fs.nr_open value */ ++ lseek(fd, 0, SEEK_SET); ++ write(fd, buf, n); + } + + TEST_HARNESS_MAIN diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-filesystems-binderfs-skip-binderfs_stress-.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-filesystems-binderfs-skip-binderfs_stress-.patch new file mode 100644 index 0000000000..5cdfa080da --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-filesystems-binderfs-skip-binderfs_stress-.patch @@ -0,0 +1,65 @@ +From 35b394922e4f715f31a2a7361adf38f32c00ddaf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:03:06 -0700 +Subject: [PATCH] selftests/filesystems/binderfs: skip binderfs_stress + without binderfs + +binderfs_test_privileged and binderfs_test_unprivileged skip when the +kernel has no binderfs, but binderfs_stress mounts it in a child process +and fails: + + binderfs_test.c:417:binderfs_stress:No such device - Failed to mount binderfs, ... + binderfs_test.c:491:binderfs_stress:wait_for_pid() failed + not ok 1 global.binderfs_stress + +Check /proc/filesystems first and skip the test if binderfs is not +available. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + .../filesystems/binderfs/binderfs_test.c | 24 +++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +index cd82c89f558f..913102d3c620 100644 +--- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c ++++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +@@ -36,6 +36,27 @@ + fd = -EBADF; \ + } + ++static bool binderfs_supported(void) ++{ ++ char line[256]; ++ bool found = false; ++ FILE *f; ++ ++ f = fopen("/proc/filesystems", "re"); ++ if (!f) ++ return false; ++ ++ while (fgets(line, sizeof(line), f)) { ++ if (!strcmp(line, "nodev\tbinder\n")) { ++ found = true; ++ break; ++ } ++ } ++ fclose(f); ++ ++ return found; ++} ++ + static void change_mountns(struct __test_metadata *_metadata) + { + int ret; +@@ -388,6 +409,9 @@ TEST(binderfs_stress) + char binderfs_mntpt[] = P_tmpdir "/binderfs_XXXXXX", + device_path[sizeof(P_tmpdir "/binderfs_XXXXXX/") + BINDERFS_MAX_NAME]; + ++ if (!binderfs_supported()) ++ SKIP(return, "The Android binderfs filesystem is not available"); ++ + ret = socketpair(PF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0, syncfds); + ASSERT_EQ(ret, 0) { + TH_LOG("%s - Failed to create socket pair", strerror(errno)); diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-expect-gpio-mockup-to-reject-an-empty.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-expect-gpio-mockup-to-reject-an-empty.patch new file mode 100644 index 0000000000..d7127eb5d4 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-expect-gpio-mockup-to-reject-an-empty.patch @@ -0,0 +1,52 @@ +From d033bebce48e7900680e325789e1b55186a7cc04 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:57:35 -0700 +Subject: [PATCH] selftests/gpio: expect gpio-mockup to reject an empty + range + +Since commit 446e8c31d0fc ("gpio: mockup: reject invalid +gpio_mockup_ranges widths") the module refuses to load with a zero-width +range, but the "no lines defined" test still expects it to load and +create no gpiochips: + + 2.1 no lines defined + test failed: insert gpio-mockup failed with error 1 + +Check that the module load fails instead. + +Fixes: 446e8c31d0fc ("gpio: mockup: reject invalid gpio_mockup_ranges widths") +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/gpio/gpio-mockup.sh | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/tools/testing/selftests/gpio/gpio-mockup.sh b/tools/testing/selftests/gpio/gpio-mockup.sh +index fc2dd4c24d06..51856c9ad7e1 100755 +--- a/tools/testing/selftests/gpio/gpio-mockup.sh ++++ b/tools/testing/selftests/gpio/gpio-mockup.sh +@@ -271,6 +271,15 @@ test_no_line() + [ ! -e "$GPIO_DEBUGFS/$1/$2" ] || fail "unexpected line $1:$2" + } + ++# Check that loading the module with the gpio_mockup_ranges parameter $1 fails. ++insmod_fail_test() ++{ ++ if modprobe -q $module "gpio_mockup_ranges=$1"; then ++ remove_module ++ fail "insert $module with ranges <$1> should fail" ++ fi ++} ++ + # Load the module and check that the expected number of gpiochips, with the + # expected number of lines, are created and are functional. + # +@@ -378,7 +387,7 @@ if [ "$full_test" ]; then + fi + echo "2. Module load error tests" + echo "2.1 no lines defined" +-insmod_test "0,0" ++insmod_fail_test "0,0" + if [ "$full_test" ]; then + echo "2.2 ignore range overlap" + insmod_test "0,32,0,1" 32 diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-skip-the-gpio-cdev-uaf-v1-tests-witho.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-skip-the-gpio-cdev-uaf-v1-tests-witho.patch new file mode 100644 index 0000000000..3dc56419b6 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-gpio-skip-the-gpio-cdev-uaf-v1-tests-witho.patch @@ -0,0 +1,127 @@ +From 192a749bd2e9ca16fd709a48636239955c169291 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:10:03 -0700 +Subject: [PATCH] selftests/gpio: skip the gpio-cdev-uaf v1 tests without + CONFIG_GPIO_CDEV_V1 + +The linehandle and lineevent tests use GPIO_GET_LINEHANDLE_IOCTL and +GPIO_GET_LINEEVENT_IOCTL, which the kernel only provides with +CONFIG_GPIO_CDEV_V1. Without it they fail with EINVAL and the whole test +fails: + + failed to get handle FD + failed to test handle ioctl + GPIO gpio-cdev-uaf test FAIL + +Exit with KSFT_SKIP in that case and let the script carry on with the +uAPI v2 tests. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/gpio/gpio-cdev-uaf.c | 20 ++++++++++++++---- + tools/testing/selftests/gpio/gpio-cdev-uaf.sh | 21 +++++++++++++++---- + 2 files changed, 33 insertions(+), 8 deletions(-) + +diff --git a/tools/testing/selftests/gpio/gpio-cdev-uaf.c b/tools/testing/selftests/gpio/gpio-cdev-uaf.c +index 765d3cc4f0ef..ef81e5c2b8be 100644 +--- a/tools/testing/selftests/gpio/gpio-cdev-uaf.c ++++ b/tools/testing/selftests/gpio/gpio-cdev-uaf.c +@@ -17,6 +17,8 @@ + #include + #include + ++#include "kselftest.h" ++ + #define CONFIGFS_DIR "/sys/kernel/config/gpio-sim" + #define PROCFS_DIR "/proc" + +@@ -201,7 +203,7 @@ static int test_ioctl(int fd) + + int main(int argc, char **argv) + { +- int cfd, fd, ret; ++ int cfd, fd, ret = EXIT_FAILURE; + int (*test_func)(int); + + if (argc != 3) { +@@ -249,7 +251,12 @@ int main(int argc, char **argv) + + req.lines = 1; + if (ioctl(cfd, GPIO_GET_LINEHANDLE_IOCTL, &req) == -1) { +- fprintf(stderr, "failed to get handle FD\n"); ++ if (errno == EINVAL) { ++ ret = KSFT_SKIP; ++ fprintf(stderr, "GPIO uAPI v1 is not available\n"); ++ } else { ++ fprintf(stderr, "failed to get handle FD\n"); ++ } + goto err_close_chip; + } + +@@ -259,7 +266,12 @@ int main(int argc, char **argv) + struct gpioevent_request req = {0}; + + if (ioctl(cfd, GPIO_GET_LINEEVENT_IOCTL, &req) == -1) { +- fprintf(stderr, "failed to get event FD\n"); ++ if (errno == EINVAL) { ++ ret = KSFT_SKIP; ++ fprintf(stderr, "GPIO uAPI v1 is not available\n"); ++ } else { ++ fprintf(stderr, "failed to get event FD\n"); ++ } + goto err_close_chip; + } + +@@ -288,5 +300,5 @@ int main(int argc, char **argv) + err_close_chip: + close(cfd); + close_chip("chip", "bank"); +- return EXIT_FAILURE; ++ return ret; + } +diff --git a/tools/testing/selftests/gpio/gpio-cdev-uaf.sh b/tools/testing/selftests/gpio/gpio-cdev-uaf.sh +index 6e47533019cf..dd7c702af873 100755 +--- a/tools/testing/selftests/gpio/gpio-cdev-uaf.sh ++++ b/tools/testing/selftests/gpio/gpio-cdev-uaf.sh +@@ -17,6 +17,19 @@ skip() { + exit 4 + } + ++# The linehandle and lineevent tests need the GPIO uAPI v1 ++# (CONFIG_GPIO_CDEV_V1); gpio-cdev-uaf exits with 4 if it is not available. ++test_v1() { ++ $BASE_DIR/gpio-cdev-uaf $1 $2 ++ case $? in ++ 0|4) ++ ;; ++ *) ++ fail "failed to test $1 $2" ++ ;; ++ esac ++} ++ + # Load the gpio-sim module. This will pull in configfs if needed too. + modprobe gpio-sim || skip "unable to load the gpio-sim module" + # Make sure configfs is mounted at /sys/kernel/config. Wait a bit if needed. +@@ -40,16 +53,16 @@ $BASE_DIR/gpio-cdev-uaf chip ioctl || fail "failed to test chip ioctl" + echo "2. linehandle" + + echo "2.1. ioctl" +-$BASE_DIR/gpio-cdev-uaf handle ioctl || fail "failed to test handle ioctl" ++test_v1 handle ioctl + + echo "3. lineevent" + + echo "3.1. read" +-$BASE_DIR/gpio-cdev-uaf event read || fail "failed to test event read" ++test_v1 event read + echo "3.2. poll" +-$BASE_DIR/gpio-cdev-uaf event poll || fail "failed to test event poll" ++test_v1 event poll + echo "3.3. ioctl" +-$BASE_DIR/gpio-cdev-uaf event ioctl || fail "failed to test event ioctl" ++test_v1 event ioctl + + echo "4. linereq" + diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-kvm-skip-nx_huge_pages_test.sh-without-KVM.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-kvm-skip-nx_huge_pages_test.sh-without-KVM.patch new file mode 100644 index 0000000000..b67d03f06c --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-kvm-skip-nx_huge_pages_test.sh-without-KVM.patch @@ -0,0 +1,36 @@ +From f5789245c843627b4982f3ded204186b4914dedb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:03:17 -0700 +Subject: [PATCH] selftests/kvm: skip nx_huge_pages_test.sh without KVM + +The script reads the kvm module parameters with "set -e" in effect, so on +a kernel without KVM it exits with an error instead of skipping: + + cat: /sys/module/kvm/parameters/nx_huge_pages: No such file or directory + not ok 1 selftests: kvm: nx_huge_pages_test.sh # exit=1 + +The other KVM tests skip when /dev/kvm is missing. Skip this one as well +when the nx_huge_pages parameter does not exist. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/kvm/x86/nx_huge_pages_test.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/tools/testing/selftests/kvm/x86/nx_huge_pages_test.sh b/tools/testing/selftests/kvm/x86/nx_huge_pages_test.sh +index caad084b8bfd..0bacd025b601 100755 +--- a/tools/testing/selftests/kvm/x86/nx_huge_pages_test.sh ++++ b/tools/testing/selftests/kvm/x86/nx_huge_pages_test.sh +@@ -8,6 +8,11 @@ + + set -e + ++if [ ! -f /sys/module/kvm/parameters/nx_huge_pages ]; then ++ echo "KVM is not available" ++ exit 4 # KSFT_SKIP=4 ++fi ++ + NX_HUGE_PAGES=$(cat /sys/module/kvm/parameters/nx_huge_pages) + NX_HUGE_PAGES_RECOVERY_RATIO=$(cat /sys/module/kvm/parameters/nx_huge_pages_recovery_ratio) + NX_HUGE_PAGES_RECOVERY_PERIOD=$(cat /sys/module/kvm/parameters/nx_huge_pages_recovery_period_ms) diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-check-lsm_get_self_attr-errno-before-a.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-check-lsm_get_self_attr-errno-before-a.patch new file mode 100644 index 0000000000..2bd5b1bfbc --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-check-lsm_get_self_attr-errno-before-a.patch @@ -0,0 +1,45 @@ +From 90d24deaa365d597ffba9ae2db5fa27209ce5402 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:01:15 -0700 +Subject: [PATCH] selftests/lsm: check lsm_get_self_attr() errno before + attr_lsm_count() + +size_too_small_lsm_get_self_attr checks errno after calling +attr_lsm_count(), which reads /sys/kernel/security/lsm with fopen(). +Without securityfs mounted the fopen() fails, errno becomes ENOENT, and +the test fails even though the syscall returned the expected error: + + lsm_get_self_attr_test.c:68:size_too_small_lsm_get_self_attr:Expected EOPNOTSUPP (95) == errno (2) + +Save errno right after the syscall. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/lsm/lsm_get_self_attr_test.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/lsm/lsm_get_self_attr_test.c b/tools/testing/selftests/lsm/lsm_get_self_attr_test.c +index 60caf8528f81..14c01b1b626c 100644 +--- a/tools/testing/selftests/lsm/lsm_get_self_attr_test.c ++++ b/tools/testing/selftests/lsm/lsm_get_self_attr_test.c +@@ -58,14 +58,17 @@ TEST(size_too_small_lsm_get_self_attr) + const long page_size = sysconf(_SC_PAGESIZE); + struct lsm_ctx *ctx = calloc(page_size, 1); + __u32 size = 1; ++ int err; + + ASSERT_NE(NULL, ctx); + errno = 0; + ASSERT_EQ(-1, lsm_get_self_attr(LSM_ATTR_CURRENT, ctx, &size, 0)); ++ /* attr_lsm_count() can change errno */ ++ err = errno; + if (attr_lsm_count()) { +- ASSERT_EQ(E2BIG, errno); ++ ASSERT_EQ(E2BIG, err); + } else { +- ASSERT_EQ(EOPNOTSUPP, errno); ++ ASSERT_EQ(EOPNOTSUPP, err); + } + ASSERT_NE(1, size); + diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-skip-correct_lsm_list_modules-without-.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-skip-correct_lsm_list_modules-without-.patch new file mode 100644 index 0000000000..a6eeb5dbf5 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-lsm-skip-correct_lsm_list_modules-without-.patch @@ -0,0 +1,33 @@ +From aec608f3643722f98098618f72fcc3c75a14c407 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:01:22 -0700 +Subject: [PATCH] selftests/lsm: skip correct_lsm_list_modules without + securityfs + +correct_lsm_list_modules compares the lsm_list_modules() result with +/sys/kernel/security/lsm. When the kernel is built without +CONFIG_SECURITYFS that file does not exist and the test fails: + + lsm_list_modules_test.c:85:correct_lsm_list_modules:Expected 0 (0) == read_sysfs_lsms(sysfs_lsms, page_size) (-1) + +Skip the test in that case. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/lsm/lsm_list_modules_test.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/testing/selftests/lsm/lsm_list_modules_test.c b/tools/testing/selftests/lsm/lsm_list_modules_test.c +index 54d59044ace1..f5108c0eb99e 100644 +--- a/tools/testing/selftests/lsm/lsm_list_modules_test.c ++++ b/tools/testing/selftests/lsm/lsm_list_modules_test.c +@@ -82,6 +82,8 @@ TEST(correct_lsm_list_modules) + + ASSERT_NE(NULL, sysfs_lsms); + ASSERT_NE(NULL, syscall_lsms); ++ if (access("/sys/kernel/security/lsm", R_OK)) ++ SKIP(return, "/sys/kernel/security/lsm is not available"); + ASSERT_EQ(0, read_sysfs_lsms(sysfs_lsms, page_size)); + + count = lsm_list_modules(syscall_lsms, &size, 0); diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-icmp-skip-without-tcpdump.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-icmp-skip-without-tcpdump.patch new file mode 100644 index 0000000000..ea03ad4f65 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-icmp-skip-without-tcpdump.patch @@ -0,0 +1,30 @@ +From bd02c9f9ff8b78eada28d6d6c8a23b0d044d10ba Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 17:19:28 -0700 +Subject: [PATCH] selftests: net: icmp: skip without tcpdump + +icmp.sh captures the ICMP reply with tcpdump. Without it the capture +file stays empty and the test fails with "got ICMP response from , +should be 192.0.0.8". + +Skip the test when tcpdump is not installed. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/net/icmp.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/testing/selftests/net/icmp.sh b/tools/testing/selftests/net/icmp.sh +index 0714e8b34d12..eff9da3238b4 100755 +--- a/tools/testing/selftests/net/icmp.sh ++++ b/tools/testing/selftests/net/icmp.sh +@@ -20,6 +20,8 @@ + + source lib.sh + ++require_command tcpdump ++ + H1_IP=172.16.0.1/32 + H1_IP6=2001:db8:1::1 + RT1=172.16.1.0/24 diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-don-t-hang-when-the-iperf3-.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-don-t-hang-when-the-iperf3-.patch new file mode 100644 index 0000000000..a02319ff90 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-don-t-hang-when-the-iperf3-.patch @@ -0,0 +1,33 @@ +From c0649196a87bf5d80336ba9ff703f06c8e50d954 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 16:51:47 -0700 +Subject: [PATCH] selftests: net: udpgro_fwd: don't hang when the iperf3 + client fails + +run_test_csum() starts a one-shot iperf3 server and waits for it after +running the client. If the client can't connect, e.g. because the vxlan +devices could not be created, the server never gets a client and the +test blocks in wait until the kselftest timeout kills it. + +Kill the server when the client fails, so the test reports the failure +and moves on. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/net/udpgro_fwd.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/testing/selftests/net/udpgro_fwd.sh b/tools/testing/selftests/net/udpgro_fwd.sh +index 9b722c1e4b0f..854b65c752e9 100755 +--- a/tools/testing/selftests/net/udpgro_fwd.sh ++++ b/tools/testing/selftests/net/udpgro_fwd.sh +@@ -177,6 +177,8 @@ run_test_csum() { + local spid="$!" + ip netns exec "$NS_SRC" iperf3 -c "$dst" -t 2 >/dev/null + local retc="$?" ++ # the server only exits after serving a client ++ [ "$retc" -ne 0 ] && kill "$spid" 2>/dev/null + wait "$spid" + local rets="$?" + if [ "$rets" -ne 0 ] || [ "$retc" -ne 0 ]; then diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-skip-the-UDP-tunnel-tests-w.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-skip-the-UDP-tunnel-tests-w.patch new file mode 100644 index 0000000000..c30135498b --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-net-udpgro_fwd-skip-the-UDP-tunnel-tests-w.patch @@ -0,0 +1,52 @@ +From 7b89e7979ca943a760a87943fa9e26a459ad5457 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 16:52:35 -0700 +Subject: [PATCH] selftests: net: udpgro_fwd: skip the UDP tunnel tests + without vxlan + +The last three tests of each address family run over a vxlan tunnel. +When the kernel can't create vxlan devices they can't pass, and before +the previous fix they hung the whole test. + +Probe for vxlan support once and report those tests as skipped when it +is missing. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/net/udpgro_fwd.sh | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/tools/testing/selftests/net/udpgro_fwd.sh b/tools/testing/selftests/net/udpgro_fwd.sh +index 854b65c752e9..839170257230 100755 +--- a/tools/testing/selftests/net/udpgro_fwd.sh ++++ b/tools/testing/selftests/net/udpgro_fwd.sh +@@ -227,6 +227,13 @@ run_bench() { + fi + } + ++# the UDP tunnel tests need vxlan support in the kernel ++have_vxlan=yes ++ip netns add "$BASE" ++ip -n "$BASE" link add dev vxlan_probe type vxlan id 1 dstport 4789 \ ++ 2>/dev/null || have_vxlan=no ++ip netns del "$BASE" ++ + for family in 4 6; do + BM_NET=$BM_NET_V4 + OL_NET=$OL_NET_V4 +@@ -276,6 +283,14 @@ for family in 4 6; do + run_bench "UDP GRO fwd perf" $BM_NET$DST + cleanup + ++ if [ "$have_vxlan" = no ]; then ++ for msg in "GRO frag list over UDP tunnel" \ ++ "GRO fwd over UDP tunnel" "GSO after GRO"; do ++ printf "%-40s skip - vxlan not supported\n" "$msg" ++ done ++ continue ++ fi ++ + create_vxlan_pair + ip netns exec $NS_DST ethtool -K veth$DST generic-receive-offload on + ip netns exec $NS_DST ethtool -K veth$DST rx-gro-list on diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-proc-empty-vm-treat-pkey_alloc-ENOSPC.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-proc-empty-vm-treat-pkey_alloc-ENOSPC.patch new file mode 100644 index 0000000000..e1f1484ef1 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-proc-empty-vm-treat-pkey_alloc-ENOSPC.patch @@ -0,0 +1,35 @@ +From d41aa0d89994e56d629a4f22526c3310e0b1a6ae Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:51:52 -0700 +Subject: [PATCH] selftests/proc: proc-empty-vm: treat pkey_alloc() + ENOSPC as no pkey support + +On x86, mm_pkey_alloc() returns -1 when OSPKE is not enabled, which +pkey_alloc() reports as ENOSPC. This happens on any CPU without PKU, for +example QEMU's Skylake-Client model, and with nopku, and the test then +bails out before checking anything: + + protection_key_support: error: rv -1, errno 28 + +Treat ENOSPC the same as the other "not supported" errors. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/proc/proc-empty-vm.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/tools/testing/selftests/proc/proc-empty-vm.c b/tools/testing/selftests/proc/proc-empty-vm.c +index b3f898aab4ab..cc619539e336 100644 +--- a/tools/testing/selftests/proc/proc-empty-vm.c ++++ b/tools/testing/selftests/proc/proc-empty-vm.c +@@ -77,6 +77,9 @@ static int protection_key_support(void) + } else if (rv == -1 && errno == EINVAL) { + // ospke=n + return 0; ++ } else if (rv == -1 && errno == ENOSPC) { ++ // ospke=n on x86 since mm_pkey_alloc() checks arch_pkeys_enabled() ++ return 0; + } else { + fprintf(stderr, "%s: error: rv %ld, errno %d\n", __func__, rv, errno); + exit(EXIT_FAILURE); diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-read-tolerate-tasks-exiting-during-th.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-read-tolerate-tasks-exiting-during-th.patch new file mode 100644 index 0000000000..0571b8ae3d --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-proc-read-tolerate-tasks-exiting-during-th.patch @@ -0,0 +1,70 @@ +From bfc5fb89d1ec500baf6fecfb2affb9e729166509 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:52:54 -0700 +Subject: [PATCH] selftests/proc: read: tolerate tasks exiting during the + walk + +The test walks all of /proc, including the directories of other tasks. +If one of them exits in the middle of the walk, reading its directories +fails: proc_pident_readdir() and friends return ENOENT for a dead task, +and proc_tgid_net_readdir() returns EINVAL once the task's network +namespace can't be found. xreaddir() asserts on any error: + + read: proc.h:49: xreaddir: Assertion `de || errno == 0' failed. + +Any short-lived process on the system, like systemd's userdbd workers, +makes the test fail randomly. Treat those errors as the end of the +directory. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/proc/read.c | 25 ++++++++++++++++++++++--- + 1 file changed, 22 insertions(+), 3 deletions(-) + +diff --git a/tools/testing/selftests/proc/read.c b/tools/testing/selftests/proc/read.c +index 35ee78dff144..e8b1f6feb1ba 100644 +--- a/tools/testing/selftests/proc/read.c ++++ b/tools/testing/selftests/proc/read.c +@@ -74,19 +74,38 @@ static void f_lnk(DIR *d, const char *filename) + assert((0 <= rv && rv <= sizeof(buf)) || rv == -1); + } + ++/* ++ * Like xreaddir(), but a task can exit while its /proc/PID directory is ++ * being walked. Reading its directories then fails with ENOENT, or with ++ * EINVAL for /proc/PID/net, which ends the directory. ++ */ ++static struct dirent *xreaddir_task(DIR *d) ++{ ++ struct dirent *de; ++ ++ errno = 0; ++ de = readdir(d); ++ assert(de || errno == 0 || errno == ENOENT || errno == EINVAL); ++ return de; ++} ++ + static void f(DIR *d, unsigned int level) + { + struct dirent *de; + +- de = xreaddir(d); ++ de = xreaddir_task(d); ++ if (!de) ++ return; + assert(de->d_type == DT_DIR); + assert(streq(de->d_name, ".")); + +- de = xreaddir(d); ++ de = xreaddir_task(d); ++ if (!de) ++ return; + assert(de->d_type == DT_DIR); + assert(streq(de->d_name, "..")); + +- while ((de = xreaddir(d))) { ++ while ((de = xreaddir_task(d))) { + assert(!streq(de->d_name, ".")); + assert(!streq(de->d_name, "..")); + diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-install-cs_prctl_test-from-the-outpu.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-install-cs_prctl_test-from-the-outpu.patch new file mode 100644 index 0000000000..532f99f3bf --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-install-cs_prctl_test-from-the-outpu.patch @@ -0,0 +1,34 @@ +From a24b4ff5908c55fa77e1c63192769d8b0449c82d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:56:28 -0700 +Subject: [PATCH] selftests/sched: install cs_prctl_test from the output + directory + +cs_prctl_test is built, so it belongs in TEST_GEN_PROGS. Listing it in +TEST_PROGS makes "make install" copy it from the source directory, which +only works for in-tree builds. With O= the binary is in the output +directory and nothing gets installed: + + rsync: [sender] link_stat ".../selftests/sched/cs_prctl_test" failed: No such file or directory (2) + +and run_kselftest.sh then reports "file cs_prctl_test is missing". + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/sched/Makefile | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/sched/Makefile b/tools/testing/selftests/sched/Makefile +index 099ee9213557..f5228cfd3eb6 100644 +--- a/tools/testing/selftests/sched/Makefile ++++ b/tools/testing/selftests/sched/Makefile +@@ -8,7 +8,6 @@ CFLAGS += -O2 -Wall -g -I./ $(KHDR_INCLUDES) -Wl,-rpath=./ \ + $(CLANG_FLAGS) + LDLIBS += -lpthread + +-TEST_GEN_FILES := cs_prctl_test +-TEST_PROGS := cs_prctl_test ++TEST_GEN_PROGS := cs_prctl_test + + include ../lib.mk diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-skip-cs_prctl_test-when-core-schedul.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-skip-cs_prctl_test-when-core-schedul.patch new file mode 100644 index 0000000000..2ac9cc450e --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-sched-skip-cs_prctl_test-when-core-schedul.patch @@ -0,0 +1,55 @@ +From 36be863d675f80ed11b96a87ebecb08c65904d4f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:56:28 -0700 +Subject: [PATCH] selftests/sched: skip cs_prctl_test when core + scheduling is unavailable + +PR_SCHED_CORE fails with EINVAL when the kernel is built without +CONFIG_SCHED_CORE, and with ENODEV when SMT is not active, e.g. in a VM +without SMT siblings. The test then fails on its first prctl() call: + + -1 = prctl(62, 1, 0, 2, 0) + (cs_prctl_test.c:287) - + +Probe for core scheduling first and skip the test if it is unavailable. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/sched/cs_prctl_test.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/tools/testing/selftests/sched/cs_prctl_test.c b/tools/testing/selftests/sched/cs_prctl_test.c +index 52d97fae4dbd..e504138cf632 100644 +--- a/tools/testing/selftests/sched/cs_prctl_test.c ++++ b/tools/testing/selftests/sched/cs_prctl_test.c +@@ -32,6 +32,8 @@ + #include + #include + ++#include "kselftest.h" ++ + #if __GLIBC_PREREQ(2, 30) == 0 + #include + static pid_t gettid(void) +@@ -231,6 +233,7 @@ void _validate(int line, int val, char *msg) + + int main(int argc, char *argv[]) + { ++ unsigned long cookie; + int keypress = 0; + int num_threads = 3; + int delay = 0; +@@ -270,6 +273,12 @@ int main(int argc, char *argv[]) + if (keypress) + delay = -1; + ++ if (prctl(PR_SCHED_CORE, PR_SCHED_CORE_GET, getpid(), PIDTYPE_PID, ++ (unsigned long)&cookie) && (errno == EINVAL || errno == ENODEV)) { ++ printf("core scheduling is not available: %s\n", strerror(errno)); ++ return KSFT_SKIP; ++ } ++ + srand(time(NULL)); + + /* put into separate process group */ diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-splice-skip-the-kernfs-checks-without-test.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-splice-skip-the-kernfs-checks-without-test.patch new file mode 100644 index 0000000000..52b5a6a7cb --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-splice-skip-the-kernfs-checks-without-test.patch @@ -0,0 +1,45 @@ +From ce9bcf34e00ffbf49712edf1523e5b6c48978204 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:57:59 -0700 +Subject: [PATCH] selftests/splice: skip the kernfs checks without + test_module + +short_splice_read.sh uses test_module's sysfs files for its kernfs +checks. When the kernel is built without CONFIG_TEST_LKM there is no +such module, and the test fails even though all the other checks pass: + + modprobe: FATAL: Module test_module not found in directory /lib/modules/... + FAIL: test_module kernel module load should work + +Skip the kernfs checks when the module is not available. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/splice/short_splice_read.sh | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/tools/testing/selftests/splice/short_splice_read.sh b/tools/testing/selftests/splice/short_splice_read.sh +index 4710e09f49fa..b6249046a580 100755 +--- a/tools/testing/selftests/splice/short_splice_read.sh ++++ b/tools/testing/selftests/splice/short_splice_read.sh +@@ -124,10 +124,15 @@ expect_success "proc_handler: proc_dostring() splice" test_splice /proc/sys/kern + expect_success "proc_handler: special read splice" test_splice /proc/sys/kernel/version + + ### /sys/ has no splice interface; these should all fail. +-if ! [ -d /sys/module/test_module/sections ] ; then +- expect_success "test_module kernel module load" modprobe test_module ++if [ -d /sys/module/test_module/sections ] || modinfo test_module >/dev/null 2>&1 ; then ++ if ! [ -d /sys/module/test_module/sections ] ; then ++ expect_success "test_module kernel module load" modprobe test_module ++ fi ++ expect_success "kernfs attr splice" test_splice /sys/module/test_module/coresize ++ expect_success "kernfs binattr splice" test_splice /sys/module/test_module/sections/.init.text ++else ++ echo "" >&2 ++ echo "SKIP: kernfs splice tests, test_module (CONFIG_TEST_LKM) is not available" >&2 + fi +-expect_success "kernfs attr splice" test_splice /sys/module/test_module/coresize +-expect_success "kernfs binattr splice" test_splice /sys/module/test_module/sections/.init.text + + exit $ret diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-syscall_user_dispatch-build-sud_benchmark-.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-syscall_user_dispatch-build-sud_benchmark-.patch new file mode 100644 index 0000000000..100f0aca57 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-syscall_user_dispatch-build-sud_benchmark-.patch @@ -0,0 +1,35 @@ +From 5bd11503bf3a582f3be9eef427b2d3384ff03ba2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 14:59:30 -0700 +Subject: [PATCH] selftests/syscall_user_dispatch: build sud_benchmark + with a frame pointer + +On x86-64, handle_sigsys() returns from the SIGSYS handler by hand: it +runs "leaveq; add $0x8, %rsp" and then issues rt_sigreturn from inside +the dispatcher region. That relies on the handler having a frame pointer, +which is only the case when the test is built without optimization. With +CFLAGS="-O2" the frame pointer is omitted, rt_sigreturn finds a bogus +frame and the test crashes: + + sud_benchmark[3299] bad frame in rt_sigreturn frame:... sp:1 ... + +Always build sud_benchmark with -fno-omit-frame-pointer. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/syscall_user_dispatch/Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tools/testing/selftests/syscall_user_dispatch/Makefile b/tools/testing/selftests/syscall_user_dispatch/Makefile +index 03c120270953..1f60b49c2d45 100644 +--- a/tools/testing/selftests/syscall_user_dispatch/Makefile ++++ b/tools/testing/selftests/syscall_user_dispatch/Makefile +@@ -7,3 +7,7 @@ CFLAGS += -Wall -I$(LINUX_HDR_PATH) + + TEST_GEN_PROGS := sud_test sud_benchmark + include ../lib.mk ++ ++# handle_sigsys() unwinds its own stack frame with inline assembly to return ++# through rt_sigreturn, which only works if it has a frame pointer. ++$(OUTPUT)/sud_benchmark: CFLAGS += -fno-omit-frame-pointer diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-watchdog-skip-when-there-is-no-watchdog-de.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-watchdog-skip-when-there-is-no-watchdog-de.patch new file mode 100644 index 0000000000..5d2a1bfda3 --- /dev/null +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-watchdog-skip-when-there-is-no-watchdog-de.patch @@ -0,0 +1,46 @@ +From e5c9e9d546c54acba09537b4722da906cc910dfb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 30 Oct 2026 15:05:15 -0700 +Subject: [PATCH] selftests/watchdog: skip when there is no watchdog + device + +watchdog-test exits with -1 when /dev/watchdog does not exist, so on +systems without a watchdog it is reported as a failure: + + Watchdog device (/dev/watchdog) not found. + not ok 1 selftests: watchdog: watchdog-test # exit=255 + +Skip the test in that case. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + tools/testing/selftests/watchdog/watchdog-test.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tools/testing/selftests/watchdog/watchdog-test.c b/tools/testing/selftests/watchdog/watchdog-test.c +index 4f09c5db0c7f..6756231df9fb 100644 +--- a/tools/testing/selftests/watchdog/watchdog-test.c ++++ b/tools/testing/selftests/watchdog/watchdog-test.c +@@ -23,6 +23,8 @@ + #include + #include + ++#include "kselftest.h" ++ + #define DEFAULT_PING_RATE 1 + + int fd; +@@ -189,9 +191,10 @@ int main(int argc, char *argv[]) + fd = open(file, O_WRONLY); + + if (fd == -1) { +- if (errno == ENOENT) ++ if (errno == ENOENT) { + printf("Watchdog device (%s) not found.\n", file); +- else if (errno == EACCES) ++ exit(KSFT_SKIP); ++ } else if (errno == EACCES) + printf("Run watchdog as root.\n"); + else + printf("Watchdog device open failed %s\n", From patchwork Sat Oct 31 03:57:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102588 Received: from mail-dy1-f170.google.com (mail-dy1-f170.google.com [74.125.82.170]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.701.1793419085256166994 for ; Fri, 30 Oct 2026 20:58:05 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=F/5jT+d0; spf=pass (domain: gmail.com, ip: 74.125.82.170, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f170.google.com with SMTP id 5a478bee46e88-36a17a332ecso2415354eec.1 for ; Fri, 30 Oct 2026 20:58:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793419085; x=1794023885; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=y1TcmG9qu1LQyH8HVm2Y6HsES7mXdyLuG+KoqrRoALs=; b=F/5jT+d0UUno1GOcECrT1Towl/mZTWRsVQAC12SouZ0vdF0JTYnr3eLWZN5T9gmYf+ rXq6vGSVjTty7C9iUfcibJ45IR8AHrWShCk0OHzJuU7g12QRJl4NyZwEy/rLw6RMpMOk FMH0iy0zQMzfvRf5/+dJzoSiZemCQEkCYXLYr3oPhhF39Dk85cmVSOdwl/08cIjH7nxw PZJHrJYJ71wv1yPcmqGRpyvhhLAlwrtEA/sWRc6QI7o8rngmDnKRgjMEBbyUOllovXkk NiaFbSLdKbp8KphRz75P4bIb6IVNVRZG/+Cs4qaM0nFYV/mqim2b4/iDexvK6DpNkveH OihQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793419085; x=1794023885; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=y1TcmG9qu1LQyH8HVm2Y6HsES7mXdyLuG+KoqrRoALs=; b=poZ1VM2LdDCikU1eL0xtQ1KbSpXB33l3BboGhy3/hkoxbgyFLPv7Jc+88kJQSxLTbP 1VPVqqzHHtx7KEp3x+0zT9IaWiPCSNqX82enugddiUk3usD+zfbTSJeHa1ozbqlIY5XA vTVrTDOpoMG2SLVvurstOzSPxRpZay+H/3HTWlwMXX1CIJuJNp4vEzZkVN6CpGzWc22E yn9UkuVQ2oLIy5V4Yi+HY3C2P7aftBZAAt84d2ow1J6ba2M7M1WyWhXQPN0Krel5BfMP VdPtHVQf5b+GJzCzokpRfRmF98bPhx/4UUXRddNPEbo+wjrh7N2LY6FqiPQZGvNepfXa dsnw== X-Gm-Message-State: AFq9FYIta9ymK4qD8Aaqden6zpQAW+vBx5QRn7h4qpwiqEMExbOg4m06 pEXHXJFqaSKzFCrDTGLn+ZbWNRg7Ki+Sk24cr17U9yGX5ckpdjl6NtweRqg3eP+bd0E= X-Gm-Gg: AYBFou3tQnBPcMkSsb0E+uEfAzB9wAoEIHPeRzan7FlL0QlIiyvHRjvI4U/xj+EG9bA 6WWoC3/MxsK+qNDD/RidKEio0NPPTUZfOC3Vux+2yTCT+JhwyNiTWRvE1NkLTT9xpXCsdvM3Qz5 pZYsxrSCcKbl2cUkt+azTT4u/efmWsZM8b/yBEJ6jtnKmfejgeTIMN6mRi7TpUGMAfWsCO8/wCI utZzfAukDp8N62L5Bm7AcatEiLmu/FaBuWV1ENFWF2QPC46VxFwAtxTWKM72MXj/7/ZzpdGjL1W bc0wZNSQRMK/TVq4FuCT3M1WvG5Spf/zatfjWSIL5snt/1U4u6kpErYdTXWWGdoxOWdK3kkyACP zqytXResuniqFY/VUD7sXJATg5Ps4I0+1kpepAYWv5vDo5TrMsILIVNJrGiXU9CIhCBkWpbGqXS jXyhdASODX5+Pqqa9nN59YFzWaPFg56CLhySjS19L9ggXOkzti6IPODFGkmUK8xB9mCiQm7Pkqb GQvJ7C7uc0msMHr+TD0Olm2y6HabqBVIlgxYHI2UBoi/zYLpww+aiQDcewoByjcceLFuCz9XuH7 NdXLr8pSbLo0yazYLX47RTJc4D00WsryRJICnOmVvNGCRLb8+Y6nrQ+A1S+AmGTbtBAoleudany SVKo+fL8hg9pcRhl5gXorssWEk/PquINq4qjqIt7eJfFbecvuyBrPeuEd+ARhdrxq78aaIN4Txx mOrp/UbvplucUmlXtOIos3oJgAllW/J3sRu4sRqAhBZbYblQP3TRhjhTDrxIqigNR+B2LQlxRu1 Dwg14/u5JyWCLrpaAk6krFsZWTcI7XBpCXwEcwEkUzQ/GtR6stAp7qKpkXDVlteRdiEOsIb916J wSse2fRHGnQwQd9u3symt78IAiQ= X-Received: by 2002:a05:7300:881c:b0:369:ec31:8fd5 with SMTP id 5a478bee46e88-36a42225546mr6738566eec.3.1793419084400; Fri, 30 Oct 2026 20:58:04 -0700 (PDT) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36a42a5fb97sm13687837eec.23.2026.10.30.20.58.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2026 20:58:03 -0700 (PDT) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-oe][PATCH 10/10] kernel-selftest: Skip tests the running kernel can't support Date: Fri, 30 Oct 2026 20:57:47 -0700 Message-ID: <20261031035748.2130261-10-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> References: <20261031035748.2130261-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sat, 31 Oct 2026 03:58:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131720 Many tests, most of them in net, fail rather than skip when the kernel lacks a feature they need (vxlan, geneve, macvlan, vrf, netdevsim, TLS, tc actions and qdiscs, audit for the landlock tests, ...). Skip them based on the running kernel's config, so the results show regressions instead of the kernel configuration. Also skip the udpgro tests when iptables can't set up NAT (legacy iptables on a kernel with only nftables), tc-testing when scapy is not installed, landlock's fs_bench, which only reports timings and needs twice the default timeout in qemu, mseal's sysmap_is_sealed when the kernel doesn't seal the system mappings, and the ptrace vmaccess and tty_tiocsti tests, which check for kernel changes that are not in mainline. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- .../kernel-selftest/kernel-selftest/run-ptest | 93 ++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest index e8a136dce8..85fa63b5e4 100755 --- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest @@ -8,10 +8,101 @@ # runner blocked (and silent) until they finish, so ptest-runner kills the # whole suite. Skip it. # +# ptrace:vmaccess and tty:tty_tiocsti_test check for kernel changes that are +# not in mainline: PTRACE_ATTACH failing with EAGAIN during a multi-threaded +# exec instead of blocking (the attach test always times out), and TIOCSTI +# checking the credentials of the file opener rather than the caller. Skip +# them. +# +# landlock:fs_bench only reports timings, and walking its 10000 nested +# directories takes about 90 seconds in qemu, twice the default timeout. +SKIP="-S ftrace:ftracetest-ktap -S filesystems:file_stressor \ + -S ptrace:vmaccess -S tty:tty_tiocsti_test -S landlock:fs_bench" + +# sysmap_is_sealed can't tell at runtime whether the kernel seals the system +# mappings, so skip it when the running kernel's config says it doesn't. +if [ -r /proc/config.gz ] && \ + zcat /proc/config.gz | grep -q '^# CONFIG_MSEAL_SYSTEM_MAPPINGS is not set'; then + SKIP="$SKIP -S mseal_system_mappings:sysmap_is_sealed" +fi + +# Tests that fail, rather than skip, when the kernel lacks a feature they +# need (the options are in each collection's "config" file). Skip a test when +# the running kernel has any of its options neither built in nor as a module. +NEEDS_CONFIG=" +landlock:audit_test AUDIT +landlock:fs_test AUDIT +landlock:net_test AUDIT +landlock:ptrace_test AUDIT +landlock:scoped_abstract_unix_test AUDIT +net:bridge_vlan_dump.sh BRIDGE_VLAN_FILTERING +net:busy_poll_test.sh NETDEVSIM +net:cmsg_so_mark.sh IPV6_MULTIPLE_TABLES +net:cmsg_so_priority.sh NET_ACT_GACT +net:cmsg_time.sh NET_SCH_ETF +net:ecmp_rehash.sh NET_ACT_GACT +net:fdb_notify.sh MACVLAN VXLAN +net:fib_nexthops.sh VXLAN +net:fib_rule_tests.sh IPV6_MULTIPLE_TABLES NET_VRF +net:fq_band_pktlimit.sh NET_SCH_FQ +net:gre_gso.sh IPV6_GRE +net:gre_ipv6_lladdr.sh IPV6_MULTIPLE_TABLES +net:icmp_redirect.sh NET_VRF +net:ip_local_port_range.sh MPTCP +net:ipvtap_test.sh IPVTAP +net:l2tp.sh L2TP_V3 L2TP_ETH L2TP_IP +net:link_netns.py IPVLAN IPV6_GRE MACSEC MACVLAN MACVTAP NETKIT +net:netdev-l2addr.sh NETDEVSIM +net:netns-name.sh NETDEVSIM +net:nk_qlease.py NETDEVSIM NETKIT +net:nl_netdev.py NETDEVSIM +net:protodown.sh MACVLAN VXLAN +net:rtnetlink.sh IPV6_GRE MACSEC MACVLAN NET_VRF VXLAN +net:srv6_end_dx4_netfilter_test.sh LWTUNNEL +net:srv6_end_dx6_netfilter_test.sh LWTUNNEL +net:tap MACVTAP +net:test_bpf.sh TEST_BPF +net:test_neigh.sh NET_ACT_GACT NET_CLS_MATCHALL +net:test_vxlan_fdb_changelink.sh VXLAN +net:test_vxlan_vnifilter_notify.sh VXLAN +net:test_vxlan_vnifiltering.sh VXLAN +net:tfo_passive.sh NETDEVSIM +net:tls TLS +net:tun GENEVE +net:txtimestamp.sh IFB +net:udpgro_frglist.sh NET_CLS_BPF +net:vlan_bridge_binding.sh BRIDGE_VLAN_FILTERING +net:vrf-xfrm-tests.sh NET_VRF XFRM_INTERFACE +net:vrf_route_leaking.sh NET_VRF +" +if [ -r /proc/config.gz ]; then + KCONFIG=$(zcat /proc/config.gz) + SKIP="$SKIP $(echo "$NEEDS_CONFIG" | while read -r test options; do + for option in $options; do + if ! echo "$KCONFIG" | grep -q "^CONFIG_$option=[ym]"; then + echo "-S $test" + break + fi + done + done)" +fi + +# udpgro.sh and udpgro_fwd.sh set up NAT with iptables, which fails when it +# uses the legacy backend and the kernel only has nftables. +if ! iptables -t nat -n -L >/dev/null 2>&1; then + SKIP="$SKIP -S net:udpgro.sh -S net:udpgro_fwd.sh" +fi + +# tc-testing's tdc.py needs scapy (in meta-networking) and exits at once +# without it. +if ! python3 -c 'import scapy' >/dev/null 2>&1; then + SKIP="$SKIP -S tc-testing:tdc.sh" +fi + # Turn the runner's per-test TAP lines ("ok 3 selftests: cgroup: test_core", # "not ok 4 ... # exit=1", "ok 5 ... # SKIP") into PASS:/FAIL:/SKIP: lines # that ptest log parsers understand, keeping the original output too. -/usr/kernel-selftest/run_kselftest.sh -s -S ftrace:ftracetest-ktap -S filesystems:file_stressor 2>&1 | awk ' +/usr/kernel-selftest/run_kselftest.sh -s $SKIP 2>&1 | awk ' { print; fflush() } /^(not )?ok [0-9]+ selftests: / { res = "PASS"