Package: mini-buildd
Severity: wishlist
Tags: patch

Dear maintainer,

Time to time, there are trivial updates such as typofixes or something
like that, which uploaders are quite sure there won't be needs for
testing. Besides, uploaders might have already tested them locally.

Tests are sometimes very resource consuming (llvm-toolchain is in my
mind). I think it will be nice if a way to skip tests is provided.

Here I attach a patch that implements the way. With this patch, when
 * MINI_BUILDD_OPTION: no-check
is in the top changelog entry the daemon passes
DEB_BUILD_OPTIONS=nocheck to sbuild processes.

I've tested it on a stretch box with version 1.1.4 from experimental.

Please take a look, and I hope you like it.

Thanks,

Katsuhiko
From 2e574c50a75510d2f7d91f113a20fa2191c3b050 Mon Sep 17 00:00:00 2001
From: Katsuhiko Nishimra <ktns...@gmail.com>
Date: Sat, 16 Sep 2017 07:28:09 +0900
Subject: [PATCH] Feature addition: 'no-check' upload option

This patch adds a new upload option 'no-check', which passes
DEB_BUILD_OPTIONS='nocheck' for jobs invoked by the upload.
---
 src/mini_buildd/builder.py | 6 +++++-
 src/mini_buildd/changes.py | 5 +++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mini_buildd/builder.py b/src/mini_buildd/builder.py
index 44c10488..eaff8144 100644
--- a/src/mini_buildd/builder.py
+++ b/src/mini_buildd/builder.py
@@ -207,6 +207,10 @@ $apt_allow_unauthenticated = {apt_allow_unauthenticated};
 
         sbuild_cmd += [self._breq.dsc_name]
 
+        deb_build_options = ["parallel={j}".format(j=self._sbuild_jobs)]
+        if "Build-Options" in self._breq:
+            deb_build_options += [self._breq["Build-Options"]]
+
         # Actually run sbuild
         mini_buildd.call.sbuild_keys_workaround()
         buildlog = os.path.join(self._build_dir, self._breq.buildlog_name)
@@ -222,7 +226,7 @@ $apt_allow_unauthenticated = {apt_allow_unauthenticated};
                                                 cwd=self._build_dir,
                                                 env=mini_buildd.call.taint_env({"HOME": self._build_dir,
                                                                                 "GNUPGHOME": os.path.join(mini_buildd.setup.HOME_DIR, ".gnupg"),
-                                                                                "DEB_BUILD_OPTIONS": "parallel={j}".format(j=self._sbuild_jobs)}),
+                                                                                "DEB_BUILD_OPTIONS": ' '.join(deb_build_options)}),
                                                 stdout=l, stderr=subprocess.STDOUT)
             retval = sbuild_call.result.returncode
 
diff --git a/src/mini_buildd/changes.py b/src/mini_buildd/changes.py
index cc85532e..a7b86dc6 100644
--- a/src/mini_buildd/changes.py
+++ b/src/mini_buildd/changes.py
@@ -55,6 +55,7 @@ class Changes(debian.deb822.Changes):
         KEYWORD = "MINI_BUILDD_OPTION"
         _OPTIONS = {"ignore-lintian": Bool,
                     "run-lintian": Bool,
+                    "no-check": Bool,
                     "internal-apt-priority": Int,
                     "auto-ports": CSV}
 
@@ -521,6 +522,10 @@ class Changes(debian.deb822.Changes):
                         dist.LINTIAN_FAIL_ON_ERROR: "",
                         dist.LINTIAN_FAIL_ON_WARNING: "--fail-on-warning"}
                     breq["Run-Lintian"] = modeargs[dist.lintian_mode] + " " + dist.lintian_extra_options
+                build_options = []
+                if self.options.get("no-check", alt=ao.architecture.name, default=True):
+                    build_options += ["nocheck"]
+                breq["Build-Options"] = " ".join(build_options)
 
                 breq.save(daemon.mbd_gnupg)
             else:
-- 
2.11.0

Attachment: signature.asc
Description: PGP signature

Reply via email to