Package: debspawn
Version: 0.4.2-2
Severity: normal
Tags: patch

Right now, when a build fails, debspan does not save the build log.
Having the build log is extremely useful in either case.




-- System Information:
Debian Release: 11.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'stable-updates'), (500, 'unstable'), (500, 'stable'), 
(100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-7-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_USER
Locale: LANG=en_IN.UTF-8, LC_CTYPE=en_IN.UTF-8 (charmap=UTF-8), LANGUAGE=en_US
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages debspawn depends on:
ii  debootstrap        1.0.123
ii  python3            3.9.2-3
ii  python3-toml       0.10.1-1
ii  systemd-container  247.3-5
ii  zstd               1.4.8+dfsg-2.1

Versions of packages debspawn recommends:
ii  build-essential  12.9
ii  devscripts       2.21.2

Versions of packages debspawn suggests:
ii  sudo  1.9.5p2-3

-- no debconf information
>From 29051a0a2c5c4a10fc58c9a1f7d4017c9897bc93 Mon Sep 17 00:00:00 2001
From: Ritesh Raj Sarraf <r...@debian.org>
Date: Fri, 28 May 2021 15:04:08 +0530
Subject: [PATCH] Save build log under all conditions

The build log is always useful, whether the package build passes or
fails. Infact, during a failure, it is more important. So, save the
build log in either case.

Signed-off-by: Ritesh Raj Sarraf <r...@debian.org>
---
 debspawn/build.py | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/debspawn/build.py b/debspawn/build.py
index ae190f5..dc034e9 100644
--- a/debspawn/build.py
+++ b/debspawn/build.py
@@ -432,18 +432,19 @@ def build_from_directory(osbase, pkg_dir, *,
                                      source_pkg_dir=pkg_dir,
                                      buildflags=buildflags,
                                      build_env=build_env)
+
+        # save buildlog, if we generated one
+        log_fname = os.path.join(osbase.results_dir, 
'{}_{}_{}.buildlog'.format(pkg_sourcename,
+                                                                            
version_noepoch(pkg_version),
+                                                                            
osbase.arch))
+        save_captured_console_output(log_fname)
+
         if not ret:
             return False
 
         # copy build results
         _retrieve_artifacts(osbase, pkg_tmp_dir)
 
-    # save buildlog, if we generated one
-    log_fname = os.path.join(osbase.results_dir, 
'{}_{}_{}.buildlog'.format(pkg_sourcename,
-                                                                            
version_noepoch(pkg_version),
-                                                                            
osbase.arch))
-    save_captured_console_output(log_fname)
-
     # sign the resulting package
     if sign:
         r = _sign_result(osbase.results_dir, pkg_sourcename, pkg_version, 
osbase.arch)
@@ -512,18 +513,19 @@ def build_from_dsc(osbase, dsc_fname, *,
                                      interact=interact,
                                      buildflags=buildflags,
                                      build_env=build_env)
+
+        # save buildlog, if we generated one
+        log_fname = os.path.join(osbase.results_dir, 
'{}_{}_{}.buildlog'.format(pkg_sourcename,
+                                                                            
version_noepoch(pkg_version),
+                                                                            
osbase.arch))
+        save_captured_console_output(log_fname)
+
         if not ret:
             return False
 
         # copy build results
         _retrieve_artifacts(osbase, pkg_tmp_dir)
 
-    # save buildlog, if we generated one
-    log_fname = os.path.join(osbase.results_dir, 
'{}_{}_{}.buildlog'.format(pkg_sourcename,
-                                                                            
version_noepoch(pkg_version),
-                                                                            
osbase.arch))
-    save_captured_console_output(log_fname)
-
     # sign the resulting package
     if sign:
         r = _sign_result(osbase.results_dir, pkg_sourcename, pkg_version, 
osbase.arch)
-- 
2.32.0.rc0

Reply via email to