[OS-BUILD PATCHv2] redhat: make filtermods.py less verbose by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Jan Stancek <jstancek@xxxxxxxxxx>

redhat: make filtermods.py less verbose by default

Lower the default verbosity of filtermods.py, so it doesn't
increase build logs too much. Debug messages are still captured
to a file, but only printed out in case there's an error.

Signed-off-by: Jan Stancek <jstancek@xxxxxxxxxx>

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -2634,8 +2634,12 @@ BuildKernel() {
         fi
         # this creates ../modules-*.list output, where each kmod path is as it
         # appears in modules.dep (relative to lib/modules/$KernelVer)
-        %{SOURCE22} sort -d $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep -c configs/def_variants.yaml $variants_param -o ..
+        %{SOURCE22} -l "../filtermods-$KernelVer.log" sort -d $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep -c configs/def_variants.yaml $variants_param -o ..
         if [ $? -ne 0 ]; then
+            echo "8< --- filtermods-$KernelVer.log ---"
+            cat "../filtermods-$KernelVer.log"
+            echo "--- filtermods-$KernelVer.log --- >8"
+
             echo "8< --- modules.dep ---"
             cat $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep
             echo "--- modules.dep --- >8"
diff --git a/redhat/scripts/filtermods.adoc b/redhat/scripts/filtermods.adoc
index blahblah..blahblah 100644
--- a/redhat/scripts/filtermods.adoc
+++ b/redhat/scripts/filtermods.adoc
@@ -17,7 +17,15 @@ there are some best practices for configs used in kernel builds:
 * Write as few rules for modules package as possible
 * Keep the rule list alphabetical where possible
 
-*usage:* filtermods.py [-h] [-v] [-q] {sort,rulemap,selftest,cmp2rpm} ...
+*usage:* filtermods.py [-h] [-v] [-q] [-l LOG_FILENAME] {sort,rulemap,selftest,cmp2rpm} ...
+
+== Common command line options
+These options apply to all subcommands.
+
+* -h / --help : display help
+* -v / --verbose : increases stdout verbosity
+* -q / --quiet : lowers stdout verbosity
+* -l / --log-filename : name of the logfile which captures detailed logs (filtermods.log by default)
 
 == SUBCOMMANDS
 === sort
diff --git a/redhat/scripts/filtermods.py b/redhat/scripts/filtermods.py
index blahblah..blahblah 100755
--- a/redhat/scripts/filtermods.py
+++ b/redhat/scripts/filtermods.py
@@ -11,7 +11,7 @@ import sys
 import yaml
 import unittest
 
-from logging import getLogger, DEBUG, INFO, WARN, ERROR, CRITICAL, NOTSET, StreamHandler, Formatter, Logger
+from logging import getLogger, DEBUG, INFO, WARN, ERROR, CRITICAL, NOTSET, FileHandler, StreamHandler, Formatter, Logger
 from typing import Optional
 
 log = getLogger('filtermods')
@@ -42,14 +42,25 @@ def safe_run_command(cmd, cwddir=None):
     return retcode, out, err
 
 
-def setup_logging():
+def setup_logging(log_filename, stdout_log_level):
     log_format = '%(asctime)s %(levelname)7.7s %(funcName)20.20s:%(lineno)4s %(message)s'
     log = getLogger('filtermods')
+    log.setLevel(DEBUG)
+
     handler = StreamHandler(sys.stdout)
     formatter = Formatter(log_format, '%H:%M:%S')
     handler.setFormatter(formatter)
+    handler.setLevel(stdout_log_level)
     log.addHandler(handler)
-    log.debug('Logging on')
+    log.debug('stdout logging on')
+
+    if log_filename:
+        file_handler = FileHandler(log_filename, 'w')
+        file_handler.setFormatter(formatter)
+        file_handler.setLevel(DEBUG)
+        log.addHandler(file_handler)
+        log.info('file logging on: %s', log_filename)
+
     return log
 
 
@@ -342,7 +353,7 @@ def update_allowed(kmod: KMod, visited: set[KMod], update_linked: bool = False)
 
         if init:
             kmod.allowed_list = init_allowed_list
-            log.info('%s: init to %s', kmod.name, [x.name for x in kmod.allowed_list])
+            log.debug('%s: init to %s', kmod.name, [x.name for x in kmod.allowed_list])
 
     kmod_allowed_list = kmod.allowed_list or set()
     # log.debug('%s: update to %s', kmod.name, [x.name for x in kmod_allowed_list])
@@ -354,8 +365,8 @@ def update_allowed(kmod: KMod, visited: set[KMod], update_linked: bool = False)
                 continue
             if not is_pkg_parent_to_any(pkg, kmod_dep.allowed_list):
                 to_remove.add(pkg)
-                log.info('%s: remove %s from allowed, child: %s [%s]',
-                         kmod.name, [pkg.name], kmod_dep.name, [x.name for x in kmod_dep.allowed_list])
+                log.debug('%s: remove %s from allowed, child: %s [%s]',
+                          kmod.name, [pkg.name], kmod_dep.name, [x.name for x in kmod_dep.allowed_list])
 
     # each allowed is child to at least one parent allowed [for _all_ parents]
     for pkg in kmod_allowed_list:
@@ -365,8 +376,8 @@ def update_allowed(kmod: KMod, visited: set[KMod], update_linked: bool = False)
 
             if not is_pkg_child_to_any(pkg, kmod_par.allowed_list):
                 to_remove.add(pkg)
-                log.info('%s: remove %s from allowed, parent: %s %s',
-                         kmod.name, [pkg.name], kmod_par.name, [x.name for x in kmod_par.allowed_list])
+                log.debug('%s: remove %s from allowed, parent: %s %s',
+                          kmod.name, [pkg.name], kmod_par.name, [x.name for x in kmod_par.allowed_list])
 
     for pkg in to_remove:
         kmod_allowed_list.remove(pkg)
@@ -377,7 +388,7 @@ def update_allowed(kmod: KMod, visited: set[KMod], update_linked: bool = False)
 
     if init or to_remove or update_linked:
         if to_remove:
-            log.info('%s: updated to %s', kmod.name, [x.name for x in kmod_allowed_list])
+            log.debug('%s: updated to %s', kmod.name, [x.name for x in kmod_allowed_list])
 
         for kmod_dep in kmod.depends_on:
             num_updated = num_updated + update_allowed(kmod_dep, visited)
@@ -488,8 +499,8 @@ def propagate_labels_2(pkg_list: KModPackageList, kmod_list: KModList):
 
             if chosen_pkg is not None:
                 kmod.allowed_list = set([chosen_pkg])
-                log.info('%s: making to prefer %s (preffered is %s), allowed: %s', kmod.name, chosen_pkg.name,
-                         kmod.preferred_pkg.name, [pkg.name for pkg in kmod.allowed_list])
+                log.debug('%s: making to prefer %s (preffered is %s), allowed: %s', kmod.name, chosen_pkg.name,
+                          kmod.preferred_pkg.name, [pkg.name for pkg in kmod.allowed_list])
                 update_linked = True
 
         visited: set[KMod] = set()
@@ -551,7 +562,7 @@ def propagate_labels_3(pkg_list: KModPackageList, kmod_list: KModList):
 
         if chosen_pkg:
             kmod.allowed_list = set([chosen_pkg])
-            log.info('%s: making to prefer %s (default: %s)', kmod.name, [chosen_pkg.name], default_name)
+            log.debug('%s: making to prefer %s (default: %s)', kmod.name, [chosen_pkg.name], default_name)
             update_linked = True
 
         visited: set[KMod] = set()
@@ -1002,13 +1013,15 @@ def cmd_cmp2rpm(options):
 
 def main():
     global log
-    log = setup_logging()
 
     parser = argparse.ArgumentParser()
     parser.add_argument('-v', '--verbose', dest='verbose',
                         help='be more verbose', action='count', default=4)
     parser.add_argument('-q', '--quiet', dest='quiet',
                         help='be more quiet', action='count', default=0)
+    parser.add_argument('-l', '--log-filename', dest='log_filename',
+                        help='log filename', default='filtermods.log')
+
     subparsers = parser.add_subparsers(dest='cmd')
 
     def add_graphviz_arg(p):
@@ -1061,7 +1074,9 @@ def main():
         options.verbose = options.verbose - 2
     options.verbose = max(options.verbose - options.quiet, 0)
     levels = [NOTSET, CRITICAL, ERROR, WARN, INFO, DEBUG]
-    log.setLevel(levels[min(options.verbose, len(levels) - 1)])
+    stdout_log_level = levels[min(options.verbose, len(levels) - 1)]
+
+    log = setup_logging(options.log_filename, stdout_log_level)
 
     ret = 0
     if options.cmd == "sort":

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3098
--
_______________________________________________
kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux