Parcourir la source

build/msg: Cleanup verbose option handling

The levels of indirection to set these verbose logging options is rather
crazy. This attempts to turn things into two specific options with
much more specific meanings. For now its all still controlled by the
commandline verbose option and should funciton as previously, with
the addition that the BB_VERBOSE_LOGS option can now be task specific.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie il y a 3 ans
Parent
commit
423c046f21
6 fichiers modifiés avec 15 ajouts et 18 suppressions
  1. 2 2
      bin/bitbake-worker
  2. 5 2
      lib/bb/build.py
  3. 0 5
      lib/bb/cooker.py
  4. 6 1
      lib/bb/cookerdata.py
  5. 0 6
      lib/bb/msg.py
  6. 2 2
      lib/bb/runqueue.py

+ 2 - 2
bin/bitbake-worker

@@ -413,9 +413,9 @@ class BitbakeWorker(object):
 
 
     def handle_workerdata(self, data):
     def handle_workerdata(self, data):
         self.workerdata = pickle.loads(data)
         self.workerdata = pickle.loads(data)
+        bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
+        bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
         bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
         bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
-        bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
-        bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
         bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
         bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
         for mc in self.databuilder.mcdata:
         for mc in self.databuilder.mcdata:
             self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
             self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])

+ 5 - 2
lib/bb/build.py

@@ -29,6 +29,9 @@ from bb import data, event, utils
 bblogger = logging.getLogger('BitBake')
 bblogger = logging.getLogger('BitBake')
 logger = logging.getLogger('BitBake.Build')
 logger = logging.getLogger('BitBake.Build')
 
 
+verboseShellLogging = False
+verboseStdoutLogging = False
+
 __mtime_cache = {}
 __mtime_cache = {}
 
 
 def cached_mtime_noerror(f):
 def cached_mtime_noerror(f):
@@ -413,7 +416,7 @@ def exec_func_shell(func, d, runfile, cwd=None):
 
 
         bb.data.emit_func(func, script, d)
         bb.data.emit_func(func, script, d)
 
 
-        if bb.msg.loggerVerboseLogs:
+        if verboseShellLogging or bb.utils.to_boolean(d.getVar("BB_VERBOSE_LOGS", False)):
             script.write("set -x\n")
             script.write("set -x\n")
         if cwd:
         if cwd:
             script.write("cd '%s'\n" % cwd)
             script.write("cd '%s'\n" % cwd)
@@ -433,7 +436,7 @@ exit $ret
         if fakerootcmd:
         if fakerootcmd:
             cmd = [fakerootcmd, runfile]
             cmd = [fakerootcmd, runfile]
 
 
-    if bb.msg.loggerDefaultVerbose:
+    if verboseStdoutLogging:
         logfile = LogTee(logger, StdoutNoopContextManager())
         logfile = LogTee(logger, StdoutNoopContextManager())
     else:
     else:
         logfile = StdoutNoopContextManager()
         logfile = StdoutNoopContextManager()

+ 0 - 5
lib/bb/cooker.py

@@ -413,11 +413,6 @@ class BBCooker:
             self.data.disableTracking()
             self.data.disableTracking()
 
 
     def parseConfiguration(self):
     def parseConfiguration(self):
-        # Set log file verbosity
-        verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", False))
-        if verboselogs:
-            bb.msg.loggerVerboseLogs = True
-
         # Change nice level if we're asked to
         # Change nice level if we're asked to
         nice = self.data.getVar("BB_NICE_LEVEL")
         nice = self.data.getVar("BB_NICE_LEVEL")
         if nice:
         if nice:

+ 6 - 1
lib/bb/cookerdata.py

@@ -58,11 +58,14 @@ class ConfigParameters(object):
     def updateToServer(self, server, environment):
     def updateToServer(self, server, environment):
         options = {}
         options = {}
         for o in ["abort", "force", "invalidate_stamp",
         for o in ["abort", "force", "invalidate_stamp",
-                  "verbose", "debug", "dry_run", "dump_signatures",
+                  "debug", "dry_run", "dump_signatures",
                   "debug_domains", "extra_assume_provided", "profile",
                   "debug_domains", "extra_assume_provided", "profile",
                   "prefile", "postfile", "server_timeout"]:
                   "prefile", "postfile", "server_timeout"]:
             options[o] = getattr(self.options, o)
             options[o] = getattr(self.options, o)
 
 
+        options['build_verbose_shell'] = self.options.verbose
+        options['build_verbose_stdout'] = self.options.verbose
+
         ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
         ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
         if error:
         if error:
             raise Exception("Unable to update the server configuration with local parameters: %s" % error)
             raise Exception("Unable to update the server configuration with local parameters: %s" % error)
@@ -125,6 +128,8 @@ class CookerConfiguration(object):
         self.skipsetscene = False
         self.skipsetscene = False
         self.invalidate_stamp = False
         self.invalidate_stamp = False
         self.dump_signatures = []
         self.dump_signatures = []
+        self.build_verbose_shell = False
+        self.build_verbose_stdout = False
         self.dry_run = False
         self.dry_run = False
         self.tracking = False
         self.tracking = False
         self.xmlrpcinterface = []
         self.xmlrpcinterface = []

+ 0 - 6
lib/bb/msg.py

@@ -146,18 +146,12 @@ class LogFilterLTLevel(logging.Filter):
 #
 #
 
 
 loggerDefaultLogLevel = BBLogFormatter.NOTE
 loggerDefaultLogLevel = BBLogFormatter.NOTE
-loggerDefaultVerbose = False
-loggerVerboseLogs = False
 loggerDefaultDomains = {}
 loggerDefaultDomains = {}
 
 
 def init_msgconfig(verbose, debug, debug_domains=None):
 def init_msgconfig(verbose, debug, debug_domains=None):
     """
     """
     Set default verbosity and debug levels config the logger
     Set default verbosity and debug levels config the logger
     """
     """
-    bb.msg.loggerDefaultVerbose = verbose
-    if verbose:
-        bb.msg.loggerVerboseLogs = True
-
     if debug:
     if debug:
         bb.msg.loggerDefaultLogLevel = BBLogFormatter.DEBUG - debug + 1
         bb.msg.loggerDefaultLogLevel = BBLogFormatter.DEBUG - debug + 1
     elif verbose:
     elif verbose:

+ 2 - 2
lib/bb/runqueue.py

@@ -1263,8 +1263,8 @@ class RunQueue:
             "fakerootnoenv" : self.rqdata.dataCaches[mc].fakerootnoenv,
             "fakerootnoenv" : self.rqdata.dataCaches[mc].fakerootnoenv,
             "sigdata" : bb.parse.siggen.get_taskdata(),
             "sigdata" : bb.parse.siggen.get_taskdata(),
             "logdefaultlevel" : bb.msg.loggerDefaultLogLevel,
             "logdefaultlevel" : bb.msg.loggerDefaultLogLevel,
-            "logdefaultverbose" : bb.msg.loggerDefaultVerbose,
-            "logdefaultverboselogs" : bb.msg.loggerVerboseLogs,
+            "build_verbose_shell" : self.cooker.configuration.build_verbose_shell,
+            "build_verbose_stdout" : self.cooker.configuration.build_verbose_stdout,
             "logdefaultdomain" : bb.msg.loggerDefaultDomains,
             "logdefaultdomain" : bb.msg.loggerDefaultDomains,
             "prhost" : self.cooker.prhost,
             "prhost" : self.cooker.prhost,
             "buildname" : self.cfgData.getVar("BUILDNAME"),
             "buildname" : self.cfgData.getVar("BUILDNAME"),