From a15479fe6b7bd1e6905002f8ac3cc31f7fa6bc10 Mon Sep 17 00:00:00 2001 From: Yue Tao Date: Fri, 7 Jan 2022 10:45:20 +0800 Subject: [PATCH] debrepack.py: Fix mixed package log files and wrong place of "src_files" Move log file from setup() to package() and also detach it by end of package() to avoid combing all package log files. Use os.path.isabs instead of os.path.exists to avoid to copy "src_files" from the directory where build-pkgs runs. Test Plan: Pass: successfully build of sm-db, cgcs-patch by building under integ directory Pass: successfully build of other packages Pass: no mixed package log files Story: 2008846 Task: 43138 Signed-off-by: Yue Tao Change-Id: I4930a12404bc31bf06f46b0db864343fbe166b03 --- build-tools/stx/debrepack.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/build-tools/stx/debrepack.py b/build-tools/stx/debrepack.py index 3291d326..2b1abb93 100755 --- a/build-tools/stx/debrepack.py +++ b/build-tools/stx/debrepack.py @@ -204,17 +204,6 @@ class Parser(): self.pkginfo["pkgpath"] = os.path.abspath(pkgpath) self.pkginfo["pkgname"] = os.path.basename(pkgpath) self.pkginfo["packdir"] = os.path.join(self.basedir, self.pkginfo["pkgname"]) - if os.path.exists(self.pkginfo["packdir"]): - shutil.rmtree(self.pkginfo["packdir"]) - os.mkdir(self.pkginfo["packdir"]) - - logfile = os.path.join(self.pkginfo["packdir"], self.pkginfo["pkgname"] + ".log") - if os.path.exists(logfile): - os.remove(logfile) - logfile_handler = logging.FileHandler(logfile, 'w') - formatter = logging.Formatter('%(levelname)s - %(message)s') - logfile_handler.setFormatter(formatter) - self.logger.addHandler(logfile_handler) self.pkginfo["debfolder"] = os.path.join(self.pkginfo["pkgpath"], "debian") if not os.path.isdir(self.pkginfo["debfolder"]): @@ -252,7 +241,7 @@ class Parser(): self.meta_data['src_files'] = [] for src_file in src_files: src_path = os.path.expandvars(src_file) - if not os.path.exists(src_path): + if not os.path.isabs(src_path): src_path = os.path.join(self.pkginfo["pkgpath"], src_file) if not os.path.exists(src_path): self.logger.error("No such file %s", src_path) @@ -676,6 +665,19 @@ class Parser(): def package(self, pkgpath, mirror): self.setup(pkgpath) + + if os.path.exists(self.pkginfo["packdir"]): + shutil.rmtree(self.pkginfo["packdir"]) + os.mkdir(self.pkginfo["packdir"]) + + logfile = os.path.join(self.pkginfo["packdir"], self.pkginfo["pkgname"] + ".log") + if os.path.exists(logfile): + os.remove(logfile) + logfile_handler = logging.FileHandler(logfile, 'w') + formatter = logging.Formatter('%(levelname)s - %(message)s') + logfile_handler.setFormatter(formatter) + self.logger.addHandler(logfile_handler) + if not os.path.exists(mirror): self.logger.error("No such %s directory", mirror) raise ValueError(f"No such {mirror} directory") @@ -727,4 +729,6 @@ class Parser(): source = os.path.join(self.pkginfo["packdir"], f) run_shell_cmd('cp -Lr %s %s' % (source, self.output), self.logger) + self.logger.removeHandler(logfile_handler) + return files