From 242da2b976678f678a0c2734ba024b4fd4683ca2 Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Thu, 13 Jan 2022 15:09:38 +0100 Subject: [PATCH] setroubleshoot-3.3.27 --- .gitignore | 1 + ...ootFixit-after-10-seconds-of-inactiv.patch | 45 ----- 0002-Do-not-use-Python-slip-package.patch | 103 ----------- 0003-sedispatch-improve-performance.patch | 163 ------------------ ...ve-performance-using-cache-friendly-.patch | 83 --------- ...timeout-requires-audit-libauparse-3..patch | 25 --- ...plify-html_util-for-Python-3.10-comp.patch | 161 ----------------- ...til-drop-various-unnecessary-imports.patch | 34 ---- 0008-html_util-remove-html_document.patch | 68 -------- setroubleshoot.spec | 28 ++- sources | 2 +- 11 files changed, 15 insertions(+), 698 deletions(-) delete mode 100644 0001-Stop-SetroubleshootFixit-after-10-seconds-of-inactiv.patch delete mode 100644 0002-Do-not-use-Python-slip-package.patch delete mode 100644 0003-sedispatch-improve-performance.patch delete mode 100644 0004-sedispatch-improve-performance-using-cache-friendly-.patch delete mode 100644 0005-auparse_set_eoe_timeout-requires-audit-libauparse-3..patch delete mode 100644 0006-Considerably-simplify-html_util-for-Python-3.10-comp.patch delete mode 100644 0007-html_util-drop-various-unnecessary-imports.patch delete mode 100644 0008-html_util-remove-html_document.patch diff --git a/.gitignore b/.gitignore index d0bc9e3..a15dd6b 100644 --- a/.gitignore +++ b/.gitignore @@ -211,3 +211,4 @@ setroubleshoot-2.2.93.tar.gz /setroubleshoot-3.3.24.tar.gz /setroubleshoot-3.3.25.tar.gz /setroubleshoot-3.3.26.tar.gz +/framework-3.3.27.tar.gz diff --git a/0001-Stop-SetroubleshootFixit-after-10-seconds-of-inactiv.patch b/0001-Stop-SetroubleshootFixit-after-10-seconds-of-inactiv.patch deleted file mode 100644 index 99630bc..0000000 --- a/0001-Stop-SetroubleshootFixit-after-10-seconds-of-inactiv.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 56cf1525b5ebeb3591d4a3ded5299fe82d0f9208 Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Wed, 14 Apr 2021 17:03:39 +0200 -Subject: [PATCH] Stop SetroubleshootFixit after 10 seconds of inactivity - ---- - framework/src/SetroubleshootFixit.py | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/framework/src/SetroubleshootFixit.py b/framework/src/SetroubleshootFixit.py -index 15c6cab1cda4..f7cbf95f182f 100644 ---- a/framework/src/SetroubleshootFixit.py -+++ b/framework/src/SetroubleshootFixit.py -@@ -7,6 +7,7 @@ from gi.repository import GLib - import slip.dbus.service - from slip.dbus import polkit - import os -+import signal - - - class RunFix(slip.dbus.service.Object): -@@ -14,12 +15,20 @@ class RunFix(slip.dbus.service.Object): - - def __init__(self, *p, **k): - super(RunFix, self).__init__(*p, **k) -+ self.timeout = 10 -+ self.alarm(self.timeout) -+ -+ def alarm(self, timeout=10): -+ signal.alarm(timeout) -+ - - @dbus.service.method("org.fedoraproject.SetroubleshootFixit", in_signature='ss', out_signature='s') - def run_fix(self, local_id, analysis_id): - import subprocess -+ self.alarm(0) - command = ["sealert", "-f", local_id, "-P", analysis_id] - return subprocess.check_output(command, universal_newlines=True) -+ self.alarm(self.timeout) - - if __name__ == "__main__": - mainloop = GLib.MainLoop() --- -2.31.1 - diff --git a/0002-Do-not-use-Python-slip-package.patch b/0002-Do-not-use-Python-slip-package.patch deleted file mode 100644 index 81dff13..0000000 --- a/0002-Do-not-use-Python-slip-package.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 65145c512908badc45fbab8f3b329e9923b42fb1 Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Wed, 14 Apr 2021 17:04:59 +0200 -Subject: [PATCH] Do not use Python slip package - -It's not maintained anymore and it allows us to drop dependency on -Python slip package - -Use DBUS polkit interface instead - -https://www.freedesktop.org/software/polkit/docs/latest/eggdbus-interface-org.freedesktop.PolicyKit1.Authority.html ---- - framework/src/SetroubleshootFixit.py | 35 ++++++++++++++++++------- - framework/src/setroubleshoot/browser.py | 3 --- - 2 files changed, 25 insertions(+), 13 deletions(-) - -diff --git a/framework/src/SetroubleshootFixit.py b/framework/src/SetroubleshootFixit.py -index f7cbf95f182f..ab0ad2bf632c 100644 ---- a/framework/src/SetroubleshootFixit.py -+++ b/framework/src/SetroubleshootFixit.py -@@ -4,13 +4,11 @@ import dbus - import dbus.service - import dbus.mainloop.glib - from gi.repository import GLib --import slip.dbus.service --from slip.dbus import polkit - import os - import signal -+import subprocess - -- --class RunFix(slip.dbus.service.Object): -+class RunFix(dbus.service.Object): - default_polkit_auth_required = "org.fedoraproject.setroubleshootfixit.write" - - def __init__(self, *p, **k): -@@ -21,14 +19,32 @@ class RunFix(slip.dbus.service.Object): - def alarm(self, timeout=10): - signal.alarm(timeout) - -- -- @dbus.service.method("org.fedoraproject.SetroubleshootFixit", in_signature='ss', out_signature='s') -- def run_fix(self, local_id, analysis_id): -- import subprocess -+ def is_authorized(self, sender): -+ bus = dbus.SystemBus() -+ -+ proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority') -+ authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority') -+ subject = ('system-bus-name', {'name' : sender}) -+ action_id = 'org.fedoraproject.setroubleshootfixit.write' -+ details = {} -+ flags = 1 # AllowUserInteraction flag -+ cancellation_id = '' # No cancellation id -+ result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id) -+ return result[0] -+ -+ @dbus.service.method("org.fedoraproject.SetroubleshootFixit", sender_keyword="sender", in_signature='ss', out_signature='s') -+ def run_fix(self, local_id, analysis_id, sender): - self.alarm(0) - command = ["sealert", "-f", local_id, "-P", analysis_id] -- return subprocess.check_output(command, universal_newlines=True) -+ -+ if self.is_authorized(sender): -+ result = subprocess.check_output(command, universal_newlines=True) -+ else: -+ result = "Authorization failed" -+ - self.alarm(self.timeout) -+ return result -+ - - if __name__ == "__main__": - mainloop = GLib.MainLoop() -@@ -36,5 +52,4 @@ if __name__ == "__main__": - system_bus = dbus.SystemBus() - name = dbus.service.BusName("org.fedoraproject.SetroubleshootFixit", system_bus) - object = RunFix(system_bus, "/org/fedoraproject/SetroubleshootFixit/object") -- slip.dbus.service.set_mainloop(mainloop) - mainloop.run() -diff --git a/framework/src/setroubleshoot/browser.py b/framework/src/setroubleshoot/browser.py -index 2d37bb43df02..3203f75e0c17 100644 ---- a/framework/src/setroubleshoot/browser.py -+++ b/framework/src/setroubleshoot/browser.py -@@ -65,8 +65,6 @@ from setroubleshoot.util import * - from setroubleshoot.html_util import html_to_text - import re - import dbus --import slip.dbus.service --from slip.dbus import polkit - import report - import report.io - import report.io.GTKIO -@@ -933,7 +931,6 @@ class DBusProxy (object): - self.bus = dbus.SystemBus() - self.dbus_object = self.bus.get_object("org.fedoraproject.SetroubleshootFixit", "/org/fedoraproject/SetroubleshootFixit/object") - -- @polkit.enable_proxy - def run_fix(self, local_id, plugin_name): - return self.dbus_object.run_fix(local_id, plugin_name, dbus_interface="org.fedoraproject.SetroubleshootFixit") - --- -2.31.1 - diff --git a/0003-sedispatch-improve-performance.patch b/0003-sedispatch-improve-performance.patch deleted file mode 100644 index ad08b41..0000000 --- a/0003-sedispatch-improve-performance.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 46369d08223e06fb7884a4e65ff47a3b0b828f25 Mon Sep 17 00:00:00 2001 -From: Steve Grubb -Date: Thu, 15 Jul 2021 13:22:59 +0200 -Subject: [PATCH] sedispatch: improve performance - -sedispatch is pretty much the slowest audit relatedplugin. It was mixing -descriptors (select) and FILE functions (fgets) which is not a good recipe. - -It's reworked to only use descriptors. Also the flow is updated to -follow the latest plugin recommendations. This makes it run almost twice -as fast. The call to auparse_set_eoe_timeout() requires audit 3.0.1. ---- - src/sedispatch.c | 72 +++++++++++++++++++++++++----------------------- - 1 file changed, 38 insertions(+), 34 deletions(-) - -diff --git a/framework/src/sedispatch.c b/framework/src/sedispatch.c -index 2fa94fd85cc3..49c2fce2a333 100644 ---- a/framework/src/sedispatch.c -+++ b/framework/src/sedispatch.c -@@ -1,5 +1,5 @@ - /* sedispatch.c -- -- * Copyright 2009 Red Hat Inc., Durham, North Carolina. -+ * Copyright 2009,2021 Red Hat Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify -@@ -30,14 +30,14 @@ - * - */ - --#define _GNU_SOURCE --#include - #include - #include - #include - #include - #include - #include -+#include -+#include - #include "libaudit.h" - #include "auparse.h" - #include "sedbus.h" -@@ -101,8 +101,6 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) - { - char tmp[MAX_AUDIT_MESSAGE_LENGTH+1]; - struct sigaction sa; -- fd_set rfds; -- struct timeval tv; - - /* Register sighandlers */ - sa.sa_flags = 0; -@@ -113,6 +111,9 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) - sa.sa_handler = hup_handler; - sigaction(SIGHUP, &sa, NULL); - -+ /* Set STDIN non-blocking */ -+ fcntl(0, F_SETFL, O_NONBLOCK); -+ - /* Initialize the auparse library */ - au = auparse_init(AUSOURCE_FEED, 0); - if (au == NULL) { -@@ -120,37 +121,49 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) - return -1; - } - -+ auparse_set_eoe_timeout(2); - auparse_add_callback(au, handle_event, NULL, NULL); -+ - #ifdef HAVE_LIBCAP_NG - capng_clear(CAPNG_SELECT_BOTH); - capng_apply(CAPNG_SELECT_BOTH); - #endif -+ - do { -+ fd_set rfds; -+ int retval; -+ int read_size = 1; /* Set to 1 so it's not EOF */ -+ - /* Load configuration */ - if (hup) { - reload_config(); - } - -- /* Now the event loop */ -- while (fgets_unlocked(tmp, MAX_AUDIT_MESSAGE_LENGTH, stdin) && -- hup==0 && stop==0) { -- auparse_feed(au, tmp, strnlen(tmp, -- MAX_AUDIT_MESSAGE_LENGTH)); -- -- /* Wait for 3 seconds and if nothing has happen expect that the event -- * is complete and flush parser's feed -- * FIXME: in future, libaudit will provide a better mechanism for aging -- * events -- */ -+ do { - FD_ZERO(&rfds); - FD_SET(0, &rfds); -- tv.tv_sec = 3; -- tv.tv_usec = 0; -- if (select(1, &rfds, NULL, NULL, &tv) == 0) -- /* The timeout occurred, the event is probably complete */ -- auparse_flush_feed(au); -+ -+ if (auparse_feed_has_data(au)) { -+ // We'll do a 1 second timeout to try to -+ // age events as quick as possible -+ struct timeval tv; -+ tv.tv_sec = 1; -+ tv.tv_usec = 0; -+ retval = select(1, &rfds, NULL, NULL, &tv); -+ } else -+ retval = select(1, &rfds, NULL, NULL, NULL); -+ -+ /* If we timed out & have events, shake them loose */ -+ if (retval == 0 && auparse_feed_has_data(au)) -+ auparse_feed_age_events(au); -+ } while (retval == -1 && errno == EINTR && !hup && !stop); -+ -+ /* Handle the event */ -+ if (!hup && !stop && retval > 0) { -+ read_size = read(0, tmp, MAX_AUDIT_MESSAGE_LENGTH); -+ auparse_feed(au, tmp, read_size); - } -- if (feof(stdin)) -+ if (read_size == 0) /* EOF */ - break; - } while (stop == 0); - -@@ -178,7 +191,6 @@ static void dump_whole_record(auparse_state_t *au, void *conn) - { - size_t size = 1; - char *tmp = NULL, *end=NULL; -- int i = 0; - const char * rec = NULL; - const char *scon = auparse_find_field(au, "scontext"); - const char *tcon = auparse_find_field(au, "tcontext"); -@@ -234,19 +246,11 @@ static void handle_event(auparse_state_t *au, - move the cursor accidentally skipping a record. */ - while (auparse_goto_record_num(au, num) > 0) { - type = auparse_get_type(au); -- /* Now we can branch based on what record type we find. -- This is just a few suggestions, but it could be anything. */ -+ /* Only handle AVCs. */ - switch (type) { - case AUDIT_AVC: -- dump_whole_record(au, conn); -- break; -- case AUDIT_SYSCALL: -- break; -- case AUDIT_USER_LOGIN: -- break; -- case AUDIT_ANOM_ABEND: -- break; -- case AUDIT_MAC_STATUS: -+ dump_whole_record(au, conn); -+ return; - break; - default: - break; --- -2.32.0 - diff --git a/0004-sedispatch-improve-performance-using-cache-friendly-.patch b/0004-sedispatch-improve-performance-using-cache-friendly-.patch deleted file mode 100644 index 8d7b836..0000000 --- a/0004-sedispatch-improve-performance-using-cache-friendly-.patch +++ /dev/null @@ -1,83 +0,0 @@ -From ed6c940c8b05baaf8a4318beccde896893cc32dd Mon Sep 17 00:00:00 2001 -From: Steve Grubb -Date: Thu, 15 Jul 2021 13:29:32 +0200 -Subject: [PATCH] sedispatch: improve performance using cache friendly api - -It turns out that using auparse_goto_record_num() is not cache friendly. -Since it is only processing AVC events, there is no chance of seeking -around and missing the AVC record. So, that part of the program is -switched out to use auparse_next_record() which only moves through the -event once. - -Also unused variables were remove and the loop simplified. - -This change gets about 9% more speed. For reference, this -is how I checked the speed: - -time ./sedispatch < /var/log/audit/audit.log >/dev/null ---- - src/sedispatch.c | 36 +++++++++++------------------------- - 1 file changed, 11 insertions(+), 25 deletions(-) - -diff --git a/framework/src/sedispatch.c b/framework/src/sedispatch.c -index 49c2fce2a333..f2e9fbaf0743 100644 ---- a/framework/src/sedispatch.c -+++ b/framework/src/sedispatch.c -@@ -187,7 +187,7 @@ static int is_setroubleshoot(const char *context) { - } - - /* This function shows how to dump a whole record's text */ --static void dump_whole_record(auparse_state_t *au, void *conn) -+static void dump_whole_record(auparse_state_t *au) - { - size_t size = 1; - char *tmp = NULL, *end=NULL; -@@ -228,35 +228,21 @@ static void dump_whole_record(auparse_state_t *au, void *conn) - } - - --/* This function receives a single complete event at a time from the auparse -- * library. This is where the main analysis code would be added. */ -+/* This function receives a single complete event from auparse. Internal -+ * cursors are on the first record. This is where the analysis occurs. */ - static void handle_event(auparse_state_t *au, - auparse_cb_event_t cb_event_type, void *user_data) - { -- int type, num=0; -- -- DBusConnection* conn = -- (DBusConnection*) user_data; -- -- if (cb_event_type != AUPARSE_CB_EVENT_READY) -- return; -- -- /* Loop through the records in the event looking for one to process. -- We use physical record number because we may search around and -- move the cursor accidentally skipping a record. */ -- while (auparse_goto_record_num(au, num) > 0) { -- type = auparse_get_type(au); -+ /* Loop through the records looking for an AVC. If we ever process -+ * other record types without directly returning, we may need to use -+ * auparse_goto_record_num() to ensure seeing each record. */ -+ do { - /* Only handle AVCs. */ -- switch (type) { -- case AUDIT_AVC: -- dump_whole_record(au, conn); -- return; -- break; -- default: -- break; -+ if (auparse_get_type(au) == AUDIT_AVC) { -+ dump_whole_record(au); -+ return; - } -- num++; -- } -+ } while (auparse_next_record(au) > 0); - } - - #ifdef NOTUSED --- -2.32.0 - diff --git a/0005-auparse_set_eoe_timeout-requires-audit-libauparse-3..patch b/0005-auparse_set_eoe_timeout-requires-audit-libauparse-3..patch deleted file mode 100644 index dbb5446..0000000 --- a/0005-auparse_set_eoe_timeout-requires-audit-libauparse-3..patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4041744bc94ee94a5d6ba59dd398e2eaae790b97 Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Fri, 16 Jul 2021 11:03:47 +0200 -Subject: [PATCH] auparse_set_eoe_timeout() requires audit / libauparse 3.0.1 - ---- - configure.ac | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/framework/configure.ac b/framework/configure.ac -index d1d01766e4a0..0fba58dca9d2 100644 ---- a/framework/configure.ac -+++ b/framework/configure.ac -@@ -13,6 +13,8 @@ PKG_CHECK_MODULES([NOTIFY], [libnotify]) - PKG_CHECK_MODULES([SEAPPLETLEGACY], [gtk+-2.0 gio-unix-2.0 libnotify dbus-glib-1], - [seappletlegacy=yes], [seappletlegacy=no]) - PKG_CHECK_MODULES([SEAPPLET], [gtk+-3.0]) -+# auparse_set_eoe_timeout() requires libauparse 3.0.1 -+PKG_CHECK_MODULES([SEDISPATCH], [auparse >= 3.0.1]) - - # make sure we keep ACLOCAL_FLAGS around for maintainer builds to work - AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") --- -2.32.0 - diff --git a/0006-Considerably-simplify-html_util-for-Python-3.10-comp.patch b/0006-Considerably-simplify-html_util-for-Python-3.10-comp.patch deleted file mode 100644 index 57e8928..0000000 --- a/0006-Considerably-simplify-html_util-for-Python-3.10-comp.patch +++ /dev/null @@ -1,161 +0,0 @@ -From 838f53a97ce44ea0f8f4d361afcb62a441f8633f Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Mon, 26 Jul 2021 13:11:17 -0700 -Subject: [PATCH] Considerably simplify html_util for Python 3.10 compatibility - (#58) - -As reported in #58 and RHBZ #1972391, `formatter` was removed -from the Python standard library in Python 3.10. This heavily -simplifies `html_util.html_to_text()` by using the stdlib -`HTMLParser` class, which avoids the use of `formatter`. - -Signed-off-by: Adam Williamson ---- - src/setroubleshoot/html_util.py | 110 ++++---------------------------- - 1 file changed, 12 insertions(+), 98 deletions(-) - -diff --git a/framework/src/setroubleshoot/html_util.py b/framework/src/setroubleshoot/html_util.py -index 5c6d07ab29dd..095eaeb8c4d4 100644 ---- a/framework/src/setroubleshoot/html_util.py -+++ b/framework/src/setroubleshoot/html_util.py -@@ -28,110 +28,29 @@ __all__ = [ - - import syslog - import sys -+import textwrap - if sys.version_info > (3,): - import html -- import html.parser - import html.entities -- from io import StringIO -+ from html.parser import HTMLParser - else: - import htmllib -- from StringIO import StringIO --import formatter as Formatter -+ from HTMLParser import HTMLParser - import string - from types import * - - #------------------------------------------------------------------------------ - -+class HTMLFilter(HTMLParser): -+ def __init__(self): -+ HTMLParser.__init__(self) -+ self.text = "" - --class TextWriter(Formatter.DumbWriter): -- -- def __init__(self, file=None, maxcol=80, indent_width=4): -- Formatter.DumbWriter.__init__(self, file, maxcol) -- self.indent_level = 0 -- self.indent_width = indent_width -- self._set_indent() -- -- def _set_indent(self): -- self.indent_col = self.indent_level * self.indent_width -- self.indent = ' ' * self.indent_col -- -- def new_margin(self, margin, level): -- self.indent_level = level -- self._set_indent() -- -- def send_label_data(self, data): -- data = data + ' ' -- if len(data) > self.indent_col: -- self.send_literal_data(data) -- else: -- offset = self.indent_col - len(data) -- self.send_literal_data(' ' * offset + data) -- -- def send_flowing_data(self, data): -- if not data: -- return -- atbreak = self.atbreak or data[0] in string.whitespace -- col = self.col -- maxcol = self.maxcol -- write = self.file.write -- col = self.col -- if col == 0: -- write(self.indent) -- col = self.indent_col -- for word in data.split(): -- if atbreak: -- if col + len(word) >= maxcol: -- write('\n' + self.indent) -- col = self.indent_col -- else: -- write(' ') -- col = col + 1 -- write(word) -- col = col + len(word) -- atbreak = 1 -- self.col = col -- self.atbreak = data[-1] in string.whitespace -- --if sys.version_info > (3,): -- class HTMLParserAnchor(html.parser.HTMLParser): -- -- def __init__(self, formatter, strict=False, convert_charrefs=False): -- super(HTMLParserAnchor, self).__init__() -- self.formatter = formatter -- self.anchor_href = None -- -- def handle_starttag(self, tag, attrs): -- if tag == 'a': -- for key, value in attrs: -- if key == 'href': -- self.anchor_href = value -- -- def handle_endtag(self, tag): -- if tag == 'a': -- if self.anchor_href != None: -- self.formatter.writer.send_flowing_data('(' + self.anchor_href + ')') -- self.anchor_href = None -- -- def handle_data(self, data): -- self.formatter.writer.send_flowing_data(data) -- --else: -- class HTMLParserAnchor(htmllib.HTMLParser): -- -- def __init__(self, formatter, verbose=0): -- htmllib.HTMLParser.__init__(self, formatter, verbose) -- -- def anchor_bgn(self, href, name, type): -- self.anchor = href -- -- def anchor_end(self): -- if self.anchor: -- self.handle_data(' (%s) ' % self.anchor) -- self.anchor = None -+ def handle_data(self, data): -+ self.text += data - - #------------------------------------------------------------------------------ - -- - def escape_html(s): - if s is None: - return None -@@ -161,14 +80,9 @@ def unescape_html(s): - - def html_to_text(html, maxcol=80): - try: -- buffer = StringIO() -- formatter = Formatter.AbstractFormatter(TextWriter(buffer, maxcol)) -- parser = HTMLParserAnchor(formatter) -- parser.feed(html) -- parser.close() -- text = buffer.getvalue() -- buffer.close() -- return text -+ filter = HTMLFilter() -+ filter.feed(html) -+ return textwrap.fill(filter.text, width=maxcol) - except Exception as e: - syslog.syslog(syslog.LOG_ERR, 'cannot convert html to text: %s' % e) - return None --- -2.32.0 - diff --git a/0007-html_util-drop-various-unnecessary-imports.patch b/0007-html_util-drop-various-unnecessary-imports.patch deleted file mode 100644 index 42b5ad8..0000000 --- a/0007-html_util-drop-various-unnecessary-imports.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4722407e107911d448b47a9beeb8240c4df833fa Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Mon, 26 Jul 2021 13:16:27 -0700 -Subject: [PATCH] html_util: drop various unnecessary imports - -None of these actually seem to be used any more. - -Signed-off-by: Adam Williamson ---- - src/setroubleshoot/html_util.py | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/framework/src/setroubleshoot/html_util.py b/framework/src/setroubleshoot/html_util.py -index 095eaeb8c4d4..d24632b7e44c 100644 ---- a/framework/src/setroubleshoot/html_util.py -+++ b/framework/src/setroubleshoot/html_util.py -@@ -30,14 +30,9 @@ import syslog - import sys - import textwrap - if sys.version_info > (3,): -- import html -- import html.entities - from html.parser import HTMLParser - else: -- import htmllib - from HTMLParser import HTMLParser --import string --from types import * - - #------------------------------------------------------------------------------ - --- -2.32.0 - diff --git a/0008-html_util-remove-html_document.patch b/0008-html_util-remove-html_document.patch deleted file mode 100644 index 005cd14..0000000 --- a/0008-html_util-remove-html_document.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 15c8f55d85fc5b314b8a00cd5e9432e8d2726d7a Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Mon, 26 Jul 2021 13:18:29 -0700 -Subject: [PATCH] html_util: remove html_document - -I suspect this can safely be removed, because I don't think it -has worked for six years. Since dbaaf0f it uses `six.string_types` -but does not `import six`; if the function were ever called, it -would crash immediately. I suggest this is reasonable proof that -it's useless. Nothing in setroubleshoot itself calls it. - -Signed-off-by: Adam Williamson ---- - src/setroubleshoot/html_util.py | 34 --------------------------------- - 1 file changed, 34 deletions(-) - -diff --git a/framework/src/setroubleshoot/html_util.py b/framework/src/setroubleshoot/html_util.py -index d24632b7e44c..d16b78934c85 100644 ---- a/framework/src/setroubleshoot/html_util.py -+++ b/framework/src/setroubleshoot/html_util.py -@@ -22,8 +22,6 @@ __all__ = [ - 'escape_html', - 'unescape_html', - 'html_to_text', -- -- 'html_document', - ] - - import syslog -@@ -81,35 +79,3 @@ def html_to_text(html, maxcol=80): - except Exception as e: - syslog.syslog(syslog.LOG_ERR, 'cannot convert html to text: %s' % e) - return None -- -- --def html_document(*body_components): -- '''Wrap the body components in a HTML document structure with a valid header. -- Accepts a variable number of arguments of of which canb be: -- * string -- * a sequences of strings (tuple or list). -- * a callable object taking no parameters and returning a string or sequence of strings. -- ''' -- head = '\n \n \n \n \n' -- tail = '\n \n' -- -- doc = head -- -- for body_component in body_components: -- if isinstance(body_component, six.string_types): -- doc += body_component -- elif isinstance(body_component, (tuple, list)): -- for item in body_component: -- doc += item -- elif callable(body_component): -- result = body_component() -- if isinstance(result, (tuple, list)): -- for item in result: -- doc += item -- else: -- doc += result -- else: -- doc += body_component -- -- doc += tail -- return doc --- -2.32.0 - diff --git a/setroubleshoot.spec b/setroubleshoot.spec index 55b35d2..bcb6716 100644 --- a/setroubleshoot.spec +++ b/setroubleshoot.spec @@ -3,22 +3,14 @@ Summary: Helps troubleshoot SELinux problems Name: setroubleshoot -Version: 3.3.26 -Release: 5%{?dist} +Version: 3.3.27 +Release: 1%{?dist} License: GPLv2+ -URL: https://pagure.io/setroubleshoot -Source0: https://releases.pagure.org/setroubleshoot/%{name}-%{version}.tar.gz +URL: https://gitlab.com/setroubleshoot/framework +Source0: https://gitlab.com/setroubleshoot/framework/-/archive/%{version}/framework-%{version}.tar.gz Source1: %{name}.tmpfiles -# git format-patch -N setroubleshoot-3.3.26 -- framework +# git format-patch -N 3.3.27 # i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done -Patch0001: 0001-Stop-SetroubleshootFixit-after-10-seconds-of-inactiv.patch -Patch0002: 0002-Do-not-use-Python-slip-package.patch -Patch0003: 0003-sedispatch-improve-performance.patch -Patch0004: 0004-sedispatch-improve-performance-using-cache-friendly-.patch -Patch0005: 0005-auparse_set_eoe_timeout-requires-audit-libauparse-3..patch -Patch0006: 0006-Considerably-simplify-html_util-for-Python-3.10-comp.patch -Patch0007: 0007-html_util-drop-various-unnecessary-imports.patch -Patch0008: 0008-html_util-remove-html_document.patch BuildRequires: gcc BuildRequires: make BuildRequires: libcap-ng-devel @@ -71,10 +63,10 @@ to user preference. The same tools can be run on existing log files. %prep -%autosetup -p 2 +%autosetup -p 2 -n framework-%{version} %build -autoreconf -f +./autogen.sh %configure PYTHON=%{__python3} --enable-seappletlegacy=no --with-auditpluginsdir=/etc/audit/plugins.d make @@ -197,6 +189,12 @@ chown -R setroubleshoot:setroubleshoot %{pkgvardatadir} %doc AUTHORS COPYING ChangeLog DBUS.md NEWS README TODO %changelog +* Thu Jan 13 2022 Petr Lautrbach - 3.3.27-1 +- sedispatch: check read_size +- SafeConfigParser is deprecated and will be dropped +- Fix typos in --help, man pages and developer's guide +- Update translations + * Tue Jul 27 2021 Petr Lautrbach - 3.3.26-5 - Improve sedispatch performance - Improve Python 3.10 compatibility diff --git a/sources b/sources index 14df6fa..38ae8ac 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (setroubleshoot-3.3.26.tar.gz) = e081a07303635e555923956541b6099fdf07c35d352f8f16ce9c131aa7155aaa5cb295919959af2088823400b074d4098a8a59741b09d25ef9ba0c86e45c62be +SHA512 (framework-3.3.27.tar.gz) = b9b5ed9771433bc40e96545a4bd2f21e108b10e932d9260407ea704dbb06c2633dff628272fb2a1b306153eab8bebda16325fb0e1312c4866dd07ef5bcb6a93a