mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-09 12:41:28 +01:00
sys-auth/polkit: Sync with Gentoo
It's from Gentoo commit 6437927ea64c1b804a9f129a07c8b9efd37efcdf. Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
parent
d50eb4f6b8
commit
642ae273b6
99
sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-126-dbusmock.patch
vendored
Normal file
99
sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-126-dbusmock.patch
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
https://github.com/polkit-org/polkit/commit/690e6972ffe30473dacbfaa81158f5507cef99f6
|
||||
https://github.com/polkit-org/polkit/commit/247952425829e41a47e83b2e433b9703713739f5
|
||||
|
||||
From 690e6972ffe30473dacbfaa81158f5507cef99f6 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Rybar <jrybar@redhat.com>
|
||||
Date: Wed, 1 Oct 2025 13:23:45 +0200
|
||||
Subject: [PATCH] DBusMock: CI broken after stop_dbus() removal
|
||||
|
||||
Because stop_dbus() was removed from DBusMock implementation, nothing
|
||||
actually stops the system bus in testing environment in the wrapper.py
|
||||
child process, hence the test times out into failure.
|
||||
Adding simple kill(<dbus_PID>) in atexit() is sufficient, but the
|
||||
original implementation in DBusMock seemed more graceful, so it was
|
||||
pulled back in.
|
||||
---
|
||||
test/wrapper.py | 34 +++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/wrapper.py b/test/wrapper.py
|
||||
index 14f4abdb..dc62f702 100755
|
||||
--- a/test/wrapper.py
|
||||
+++ b/test/wrapper.py
|
||||
@@ -5,6 +5,8 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
+import signal
|
||||
+import time
|
||||
|
||||
import dbus
|
||||
import dbus.mainloop.glib
|
||||
@@ -36,6 +38,36 @@ def setup_test_namespace(data_dir):
|
||||
print("Python 3.12 is required for os.unshare(), skipping")
|
||||
sys.exit(77)
|
||||
|
||||
+
|
||||
+def stop_dbus(pid: int) -> None:
|
||||
+ """Stop a D-Bus daemon
|
||||
+
|
||||
+ If DBus daemon is not explicitly killed in the testing environment
|
||||
+ the test times out and reports as failed.
|
||||
+ This is a backport of a function dropped from DBusMock source (99c4800e9eed).
|
||||
+ """
|
||||
+ signal.signal(signal.SIGTERM, signal.SIG_IGN)
|
||||
+ for _ in range(50):
|
||||
+ try:
|
||||
+ os.kill(pid, signal.SIGTERM)
|
||||
+ os.waitpid(pid, os.WNOHANG)
|
||||
+ except ChildProcessError:
|
||||
+ break
|
||||
+ except OSError as e:
|
||||
+ if e.errno == errno.ESRCH:
|
||||
+ break
|
||||
+ raise
|
||||
+ time.sleep(0.1)
|
||||
+ else:
|
||||
+ sys.stderr.write("ERROR: timed out waiting for bus process to terminate\n")
|
||||
+ os.kill(pid, signal.SIGKILL)
|
||||
+ try:
|
||||
+ os.waitpid(pid, 0)
|
||||
+ except ChildProcessError:
|
||||
+ pass
|
||||
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
||||
+
|
||||
+
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("test_executable",
|
||||
@@ -51,7 +83,7 @@ def setup_test_namespace(data_dir):
|
||||
if args.mock_dbus:
|
||||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
||||
dbusmock.DBusTestCase.start_system_bus()
|
||||
- atexit.register(dbusmock.DBusTestCase.stop_dbus, dbusmock.DBusTestCase.system_bus_pid)
|
||||
+ atexit.register(stop_dbus, dbusmock.DBusTestCase.system_bus_pid)
|
||||
|
||||
print(f"Executing '{args.test_executable}'")
|
||||
sys.stdout.flush()
|
||||
|
||||
From 247952425829e41a47e83b2e433b9703713739f5 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Rybar <jrybar@redhat.com>
|
||||
Date: Sun, 5 Oct 2025 16:40:30 +0200
|
||||
Subject: [PATCH] Missed 'errno' import in wrapper
|
||||
|
||||
---
|
||||
test/wrapper.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/wrapper.py b/test/wrapper.py
|
||||
index dc62f70..9547720 100755
|
||||
--- a/test/wrapper.py
|
||||
+++ b/test/wrapper.py
|
||||
@@ -7,6 +7,7 @@
|
||||
import sys
|
||||
import signal
|
||||
import time
|
||||
+import errno
|
||||
|
||||
import dbus
|
||||
import dbus.mainloop.glib
|
||||
@ -83,6 +83,7 @@ QA_MULTILIB_PATHS="
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-elogind.patch
|
||||
"${FILESDIR}"/${P}-dbusmock.patch
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user