diff --git a/.gitignore b/.gitignore index 489739b..6d044b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/setroubleshoot-3.3.31.tar.gz +SOURCES/setroubleshoot-3.3.32.tar.gz diff --git a/.setroubleshoot.metadata b/.setroubleshoot.metadata index 434e218..e305919 100644 --- a/.setroubleshoot.metadata +++ b/.setroubleshoot.metadata @@ -1 +1 @@ -de3b0332343e477ff28c3b92c9af5e15ee348106 SOURCES/setroubleshoot-3.3.31.tar.gz +6ee4101312b8c2b98ea7d007eccd62918f59c4f3 SOURCES/setroubleshoot-3.3.32.tar.gz diff --git a/SOURCES/0001-imp-module-is-deprecated-in-favor-of-importlib.patch b/SOURCES/0001-imp-module-is-deprecated-in-favor-of-importlib.patch new file mode 100644 index 0000000..44ee45c --- /dev/null +++ b/SOURCES/0001-imp-module-is-deprecated-in-favor-of-importlib.patch @@ -0,0 +1,71 @@ +From 2f9e575333af7c7798956f211c29a46a338155e5 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach +Date: Mon, 24 Jul 2023 17:33:17 +0200 +Subject: [PATCH] 'imp' module is deprecated in favor of 'importlib' +Content-type: text/plain + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2224393 +--- + src/setroubleshoot/util.py | 26 ++++++++------------------ + 1 file changed, 8 insertions(+), 18 deletions(-) + +diff --git a/src/setroubleshoot/util.py b/src/setroubleshoot/util.py +index 0e02f12de682..828a598ef1c2 100755 +--- a/src/setroubleshoot/util.py ++++ b/src/setroubleshoot/util.py +@@ -73,6 +73,7 @@ import datetime + from dasbus.connection import SystemMessageBus + import glob + from gi.repository import GObject ++import importlib + import os + import pwd + import re +@@ -771,37 +772,26 @@ def load_plugins(filter_glob=None): + + # load the parent (e.g. the package containing the submodules), required for python 2.5 and above + module_name = plugin_base +- plugin_name = '__init__' + if module_name not in sys.modules: + try: +- import imp +- mod_fp, mod_path, mod_description = imp.find_module(plugin_name, [plugin_dir]) +- mod = imp.load_module(module_name, mod_fp, mod_path, mod_description) ++ mod_spec = importlib.util.spec_from_file_location(plugin_base, plugin_dir + "/__init__.py") ++ mod = importlib.util.module_from_spec(mod_spec) ++ mod_spec.loader.exec_module(mod) + except Exception as e: + syslog.syslog(syslog.LOG_ERR, "failed to initialize plugins in %s: %s" % (plugin_dir, str(e))) + return [] + +- if mod_fp: +- mod_fp.close() +- + for plugin_name in plugin_names: + module_name = "%s.%s" % (plugin_base, plugin_name) +- mod = sys.modules.get(module_name) +- if mod is not None: +- log_debug("load_plugins() %s previously imported" % module_name) +- plugins.append(mod.plugin()) +- continue ++ + try: +- import imp +- mod_fp, mod_path, mod_description = imp.find_module(plugin_name, [plugin_dir]) +- mod = imp.load_module(module_name, mod_fp, mod_path, mod_description) ++ mod_spec = importlib.util.spec_from_file_location(module_name, plugin_dir + "/" + plugin_name + ".py") ++ mod = importlib.util.module_from_spec(mod_spec) ++ mod_spec.loader.exec_module(mod) + plugins.append(mod.plugin()) + except Exception as e: + syslog.syslog(syslog.LOG_ERR, "failed to load %s plugin: %s" % (plugin_name, str(e))) + +- if mod_fp: +- mod_fp.close() +- + plugins.sort(key=cmp_to_key(sort_plugins)) + return plugins + +-- +2.41.0 + diff --git a/SOURCES/0002-Always-reset-pending-alarms-when-alarm-0.patch b/SOURCES/0002-Always-reset-pending-alarms-when-alarm-0.patch new file mode 100644 index 0000000..42006b8 --- /dev/null +++ b/SOURCES/0002-Always-reset-pending-alarms-when-alarm-0.patch @@ -0,0 +1,29 @@ +From 659f10a0ab422251f4d6857fb34ddf1c25b21b37 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach +Date: Wed, 3 May 2023 09:35:28 +0200 +Subject: [PATCH] Always reset pending alarms when alarm(0) +Content-type: text/plain + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2112573 + +Signed-off-by: Petr Lautrbach +--- + src/setroubleshoot/server.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/setroubleshoot/server.py b/src/setroubleshoot/server.py +index fd89a5448912..2b1b0b1c30d0 100755 +--- a/src/setroubleshoot/server.py ++++ b/src/setroubleshoot/server.py +@@ -703,7 +703,7 @@ Deletes an alert from the database. + return "" + + def alarm(self, timeout=10): +- if self.conn_ctr == 0: ++ if self.conn_ctr == 0 or timeout == 0: + signal.alarm(timeout) + + +-- +2.41.0 + diff --git a/SOURCES/0003-gitlab-ci-use-apt-get-to-install-python3-dbus-packag.patch b/SOURCES/0003-gitlab-ci-use-apt-get-to-install-python3-dbus-packag.patch new file mode 100644 index 0000000..94c764b --- /dev/null +++ b/SOURCES/0003-gitlab-ci-use-apt-get-to-install-python3-dbus-packag.patch @@ -0,0 +1,52 @@ +From 502d06c8fa86b53198a2f4aeb59efdf1203531d6 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach +Date: Wed, 3 May 2023 10:17:06 +0200 +Subject: [PATCH] gitlab-ci: use apt-get to install python3-dbus package +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Content-type: text/plain + +Fixes: +$ pip3 install dasbus +error: externally-managed-environment +× This environment is externally managed +╰─> To install Python packages system-wide, try apt install + python3-xyz, where xyz is the package you are trying to + install. + + If you wish to install a non-Debian-packaged Python package, + create a virtual environment using python3 -m venv path/to/venv. + Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make + sure you have python3-full installed. + + If you wish to install a non-Debian packaged Python application, + it may be easiest to use pipx install xyz, which will manage a + virtual environment for you. Make sure you have pipx installed. + + See /usr/share/doc/python3.11/README.venv for more information. +note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. +hint: See PEP 668 for the detailed specification. + +Signed-off-by: Petr Lautrbach +--- + .gitlab-ci.yml | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml +index e82e12f66737..bea5081bb0b9 100644 +--- a/.gitlab-ci.yml ++++ b/.gitlab-ci.yml +@@ -30,8 +30,7 @@ build:debian: + - > + apt-get -y install autoconf automake libglib2.0-dev libdbus-glib-1-dev libnotify-dev + libgtk-3-dev gcc python3-selinux python3-gi python3-dbus python3-six python3-sepolicy +- xdg-utils make intltool libaudit-dev libauparse-dev python3-pip +- - pip3 install dasbus ++ xdg-utils make intltool libaudit-dev libauparse-dev python3-pip python3-dasbus + - ./autogen.sh + - make + - make install +-- +2.41.0 + diff --git a/SPECS/setroubleshoot.spec b/SPECS/setroubleshoot.spec index 3349600..7ce64d1 100644 --- a/SPECS/setroubleshoot.spec +++ b/SPECS/setroubleshoot.spec @@ -3,20 +3,23 @@ Summary: Helps troubleshoot SELinux problems Name: setroubleshoot -Version: 3.3.31 +Version: 3.3.32 Release: 1%{?dist} -License: GPLv2+ +License: GPL-2.0-or-later URL: https://gitlab.com/setroubleshoot/setroubleshoot Source0: https://gitlab.com/setroubleshoot/setroubleshoot/-/archive/%{version}/setroubleshoot-%{version}.tar.gz Source1: %{name}.tmpfiles Source2: %{name}.sysusers -# git format-patch -N 3.3.28 +# git format-patch -N 3.3.32 # i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done +Patch0001: 0001-imp-module-is-deprecated-in-favor-of-importlib.patch +Patch0002: 0002-Always-reset-pending-alarms-when-alarm-0.patch +Patch0003: 0003-gitlab-ci-use-apt-get-to-install-python3-dbus-packag.patch BuildRequires: gcc BuildRequires: make BuildRequires: libcap-ng-devel -BuildRequires: intltool gettext python3 python3-devel python3-setuptools python3-pip -BuildRequires: desktop-file-utils dbus-glib-devel libnotify-devel libselinux-devel polkit-devel +BuildRequires: intltool gettext python3 python3-devel python3-setuptools python3-wheel python3-pip +BuildRequires: desktop-file-utils libnotify-devel libselinux-devel polkit-devel BuildRequires: audit-libs-devel >= 3.0.1 BuildRequires: python3-libselinux python3-dasbus python3-gobject gtk3-devel # for the _tmpfilesdir macro @@ -54,7 +57,7 @@ to user preference. The same tools can be run on existing log files. %config(noreplace) %{_sysconfdir}/xdg/autostart/* %{_datadir}/applications/*.desktop %{_metainfodir}/*.appdata.xml -%{_datadir}/dbus-1/services/sealert.service +%{_datadir}/dbus-1/services/org.fedoraproject.sealert.service %{_datadir}/icons/hicolor/*/*/* %dir %attr(0755,root,root) %{pkgpythondir} %{pkgpythondir}/browser.py @@ -102,7 +105,7 @@ BuildRequires: python3-devel Requires: systemd-python3 >= 206-1 Requires: python3-gobject-base >= 3.11 Requires: dbus -Requires: python3-dbus python3-dasbus +Requires: python3-dbus python3-dasbus python3-six Requires: polkit Requires: initscripts-service @@ -125,7 +128,7 @@ to user preference. The same tools can be run on existing log files. %{_bindir}/sealert %{_sbindir}/sedispatch %{_sbindir}/setroubleshootd -%{python3_sitelib}/setroubleshoot*.egg-info +%{python3_sitelib}/setroubleshoot*.dist-info %dir %attr(0755,root,root) %{pkgconfigdir} %dir %{pkgpythondir} %dir %{pkgpythondir}/__pycache__ @@ -191,6 +194,19 @@ to user preference. The same tools can be run on existing log files. %doc AUTHORS COPYING ChangeLog DBUS.md NEWS README TODO %changelog +* Thu Jul 27 2023 Petr Lautrbach - 3.3.32-1 +- Always reset pending alarms when alarm(0) (rhbz#2112573) +- 'imp' module is deprecated in favor of 'importlib' (rhbz#2224393) +- Fix build with pip 23.1.2+ +- Remove dbus-glib-devel BR as it's only needed when compiled with seappletlegacy +- Rename session bus name to org.fedoraproject.sealert +- seapplet: wrap SEApplet() to try except +- util.py: Add doctext test for build_module_type_cache() +- Update translations + +* Thu Mar 09 2023 Vit Mojzis - 3.3.31-2 +- Update translations (#2139682) + * Wed Nov 23 2022 Petr Lautrbach - 3.3.31-1 - Add a screen reader label to the icon - seapplet: avoid ValueError when parsing sealert.conf