From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Marko Lemmetty Date: Fri, 15 May 2020 15:04:41 +0300 Subject: [PATCH] Add support for --rebuild and --chroot-only in build. --rebuild sends --skip-prep to build and rpm to skip the %prep phase. This is useful in conjunction with the --rsync* options to enable rapid rebuilds in the clean rpmbuild environment. --chroot-only creates a chroot without doing a build - this can be used to build scratchbox2 targets --- osc/build.py | 6 ++++++ osc/commandline.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/osc/build.py b/osc/build.py index 3409714a19653df323886de26fe46c88f7194931..c2a50696bf3d1fc43ee74e6911918f41d72f146f 100644 --- a/osc/build.py +++ b/osc/build.py @@ -670,6 +670,12 @@ def main(apiurl, opts, argv): buildargs.append('--norootforbuild') if opts.clean: buildargs.append('--clean') + if opts.rebuild: + if not opts.rsyncsrc or not opts.rsyncdest: + print >>sys.stderr, 'Warning: --rebuild option is usually used with both --rsync-src and --rsync-dest' + buildargs.append('--skip-prep') + if opts.chroot_only: + buildargs.append('--chroot-only') if opts.nochecks: buildargs.append('--no-checks') if not opts.no_changelog: diff --git a/osc/commandline.py b/osc/commandline.py index 2e7a7eda4c919380684630c5b74a2da29b61709b..021c8bd0cb9df2e0a92f5d122daddd5fab1cc571 100644 --- a/osc/commandline.py +++ b/osc/commandline.py @@ -6366,6 +6366,10 @@ Please submit there instead, or use --nodevelproject to force direct submission. help='Copy overlay filesystem to buildroot after installing all RPMs .') @cmdln.option('--noinit', '--no-init', action='store_true', help='Skip initialization of build root and start with build immediately.') + @cmdln.option('--rebuild', action='store_true', + help='During build, skip the %%prep and %%clean phases; requires --rsync options') + @cmdln.option('--chroot-only', action='store_true', + help='Only initialise build root and skip build.') @cmdln.option('--nochecks', '--no-checks', action='store_true', help='Do not run build checks on the resulting packages.') @cmdln.option('--no-verify', '--noverify', action='store_true',