From 3a330b525f26a1cb79d20f20c8c88773a157885300a2f008516c996586b1dc07 Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Mon, 11 Nov 2024 16:18:01 +0000 Subject: [PATCH 1/2] - Add 0001-t_system_single-handle-missing-selinux-context.patch: * tests: umockdev-record: t_system_single: handle missing SELinux context on /dev/null (Cherry-picked from commit f5c3a2e4ecbb2ab733b19b0bf84c8334cedd8ba2) * Fixes testsuite failure in SLFO. - Move to the %autosetup macro OBS-URL: https://build.opensuse.org/package/show/hardware/umockdev?expand=0&rev=38 --- ...ingle-handle-missing-selinux-context.patch | 60 +++++++++++++++++++ umockdev.changes | 10 ++++ umockdev.spec | 4 +- 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 0001-t_system_single-handle-missing-selinux-context.patch diff --git a/0001-t_system_single-handle-missing-selinux-context.patch b/0001-t_system_single-handle-missing-selinux-context.patch new file mode 100644 index 0000000..1b5bc37 --- /dev/null +++ b/0001-t_system_single-handle-missing-selinux-context.patch @@ -0,0 +1,60 @@ +From f5c3a2e4ecbb2ab733b19b0bf84c8334cedd8ba2 Mon Sep 17 00:00:00 2001 +From: Eugenio Paolantonio +Date: Wed, 30 Oct 2024 14:15:30 +0100 +Subject: [PATCH] tests: umockdev-record: t_system_single: handle missing + SELinux context on /dev/null + +/sys/fs/selinux might exist, yet the checked path might have no +context defined. + +Drop the check for the selinux pseudo-fs, and check the eventual +errno if lgetfilecon() fails. + +On ENODATA (context doesn't exist, or the process can't access it), +ENOTSUP (extended attributes not supported/disabled) and ENOSYS +(lgetxattr syscall used by lgetfilecon() not available), ensure +__DEVCONTEXT is not there and continue. + +On every other error, fail the test case as before. + +Signed-off-by: Eugenio Paolantonio +--- + tests/test-umockdev-record.vala | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/tests/test-umockdev-record.vala b/tests/test-umockdev-record.vala +index 8672ee1..2c362fa 100644 +--- a/tests/test-umockdev-record.vala ++++ b/tests/test-umockdev-record.vala +@@ -201,13 +201,25 @@ t_system_single () + assert_in("P: /devices/virtual/mem/null", sout); + assert_in("E: DEVNAME=/dev/zero", sout); + #if HAVE_SELINUX +- // we may run on a system without SELinux +- if (FileUtils.test("/sys/fs/selinux", FileTest.EXISTS)) { +- string context; +- assert_cmpint (Selinux.lgetfilecon ("/dev/null", out context), CompareOperator.GT, 0); +- assert_in("E: __DEVCONTEXT=" + context + "\n", sout); ++ string context; ++ int res = Selinux.lgetfilecon ("/dev/null", out context); ++ if (res > 0) { ++ assert_in ("E: __DEVCONTEXT=" + context + "\n", sout); ++ } else if (res == -1 && (Posix.errno == Posix.ENODATA || ++ Posix.errno == Posix.ENOTSUP || ++ Posix.errno == Posix.ENOSYS)) { ++ // If SELinux is not available, or is available but ++ // there is no context defined for /dev/null, ++ // we should skip this check as there is ++ // no context recorded. ++ // ++ // ENODATA: context doesn't exist, or the process ++ // can't access it ++ // ENOTSUP: extended attributes not supported/disabled ++ // ENOSYS: lgetxattr syscall not available ++ assert (!sout.contains("E: __DEVCONTEXT")); + } else { +- assert(!sout.contains("E: __DEVCONTEXT")); ++ assert_cmpint (res, CompareOperator.GT, 0); + } + #endif + } diff --git a/umockdev.changes b/umockdev.changes index d27e844..de3a85c 100644 --- a/umockdev.changes +++ b/umockdev.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Oct 31 14:19:29 UTC 2024 - Eugenio Paolantonio + +- Add 0001-t_system_single-handle-missing-selinux-context.patch: + * tests: umockdev-record: t_system_single: handle missing + SELinux context on /dev/null (Cherry-picked from commit + f5c3a2e4ecbb2ab733b19b0bf84c8334cedd8ba2) + * Fixes testsuite failure in SLFO. +- Move to the %autosetup macro + ------------------------------------------------------------------- Mon Oct 7 21:38:00 UTC 2024 - Atri Bhattacharya diff --git a/umockdev.spec b/umockdev.spec index 74b7ddf..fa8cecd 100644 --- a/umockdev.spec +++ b/umockdev.spec @@ -25,6 +25,8 @@ Summary: Mock hardware devices for creating unit tests and bug reporting License: LGPL-2.1-or-later URL: https://github.com/martinpitt/umockdev/ Source: https://github.com/martinpitt/umockdev/releases/download/%{version}/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM 0001-t_system_single-handle-missing-selinux-context.patch martinpitt/umockdev#256 eugenio.paolantonio@suse.com -- tests: umockdev-record: t_system_single: handle missing SELinux context on /dev/null +Patch1: 0001-t_system_single-handle-missing-selinux-context.patch BuildRequires: cmake BuildRequires: gtk-doc BuildRequires: meson @@ -90,7 +92,7 @@ This package provides the GObject Introspection bindings for the library umockdev. %prep -%setup -q +%autosetup -p1 %build %meson From 80c6fd1ed89fb118391add260184d41b53795b84fa78fe4291760814d45121e8 Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Mon, 11 Nov 2024 16:18:35 +0000 Subject: [PATCH 2/2] OBS-URL: https://build.opensuse.org/package/show/hardware/umockdev?expand=0&rev=39 --- umockdev.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/umockdev.spec b/umockdev.spec index fa8cecd..a738527 100644 --- a/umockdev.spec +++ b/umockdev.spec @@ -25,7 +25,7 @@ Summary: Mock hardware devices for creating unit tests and bug reporting License: LGPL-2.1-or-later URL: https://github.com/martinpitt/umockdev/ Source: https://github.com/martinpitt/umockdev/releases/download/%{version}/%{name}-%{version}.tar.xz -# PATCH-FIX-UPSTREAM 0001-t_system_single-handle-missing-selinux-context.patch martinpitt/umockdev#256 eugenio.paolantonio@suse.com -- tests: umockdev-record: t_system_single: handle missing SELinux context on /dev/null +# PATCH-FIX-UPSTREAM 0001-t_system_single-handle-missing-selinux-context.patch gh#martinpitt/umockdev#256 eugenio.paolantonio@suse.com -- tests: umockdev-record: t_system_single: handle missing SELinux context on /dev/null Patch1: 0001-t_system_single-handle-missing-selinux-context.patch BuildRequires: cmake BuildRequires: gtk-doc