On Sat, Jul 09, 2016 at 05:44:03PM +0200, tzaf...@debian.org wrote:
> From: Tzafrir Cohen <tzaf...@debian.org>
> 
> Fix gbp-buildpackage-rpm and the mock builder script to allow passing
> extra command-line parameters to the mock wrapper build script.
> 
> Signed-off-by: Tzafrir Cohen <tzaf...@debian.org>
> ---
>  bin/gbp-builder-mock                    | 13 ++++++++-----
>  docs/manpages/gbp-buildpackage-rpm.sgml |  1 +
>  gbp/scripts/buildpackage_rpm.py         |  9 +++++----
>  3 files changed, 14 insertions(+), 9 deletions(-)
> 
> diff --git a/bin/gbp-builder-mock b/bin/gbp-builder-mock
> index 1e93493..138353a 100755
> --- a/bin/gbp-builder-mock
> +++ b/bin/gbp-builder-mock
> @@ -1,4 +1,4 @@
> -#!/bin/sh
> +#!/bin/bash
>  #
>  # Helper to invoke mock from 'gbp buildpackage-rpm'
>  #
> @@ -36,14 +36,18 @@ usage() {
>       exit $EXIT
>  }
>  
> +declare -a EXTRA_ARGS
> +
>  while [ $# != 0 ]; do
>       case "$1" in
> -             --help|-h|-?) usage 0;;
> +             --help|-h) usage 0;;
>               *.spec) SPEC="$1";;
> +             *) EXTRA_ARGS+=("$1");;
>       esac
>       shift
>  done
>  
> +
>  # Make sure we have the necessary tools.
>  if [ ! -x /usr/bin/mock ]; then
>      echo "mock not found; you need to install the mock package" >&2
> @@ -71,16 +75,15 @@ gbp_builder_mock() {
>       local resultdir="$export_dir/$pat"
>       local mock="mock -r $root --resultdir=$srpms --spec=$spec 
> --sources=$sources"
>  
> -     $mock --buildsrpm
> +     $mock "${EXTRA_ARGS[@]}" --buildsrpm
>       # Assuming that nothing was built in this directory since the previous 
> command:
>       local srpm=`ls -t $PWD/SRPMS/*.src.rpm 2>/dev/null| head -n1`
>       if [ -z $srpm ]; then
>               echo >&2 "$0: failed to create srpm"
>               exit 1
>       fi
> -     $mock --no-cleanup-after --resultdir $resultdir --rebuild "$srpm"
> +     $mock "${EXTRA_ARGS[@]}" --no-cleanup-after --resultdir $resultdir 
> --rebuild "$srpm"
>  }
>  
> -
>  fix_arch
>  gbp_builder_mock
> diff --git a/docs/manpages/gbp-buildpackage-rpm.sgml 
> b/docs/manpages/gbp-buildpackage-rpm.sgml
> index ac020f8..d5aa8f7 100644
> --- a/docs/manpages/gbp-buildpackage-rpm.sgml
> +++ b/docs/manpages/gbp-buildpackage-rpm.sgml
> @@ -63,6 +63,7 @@
>        
> <arg><option>--git-arch</option>=<replaceable>ARCHITECTURE</replaceable></arg>
>        
> <arg><option>--git-mock-options</option>=<replaceable>OPTIONS</replaceable></arg>
>        
> <arg><option>--git-mock-root</option>=<replaceable>ROOT</replaceable></arg>
> +      <arg rep="repeat"><option>OPTION_PASSED_TO_BUILD_CMD</option></arg>
>      </cmdsynopsis>
>    </refsynopsisdiv>
>    <refsect1>
> diff --git a/gbp/scripts/buildpackage_rpm.py b/gbp/scripts/buildpackage_rpm.py
> index 8c131f3..d8c6da7 100644
> --- a/gbp/scripts/buildpackage_rpm.py
> +++ b/gbp/scripts/buildpackage_rpm.py
> @@ -258,10 +258,11 @@ def setup_builder(options, builder_args):
>      if options.builder == 'rpmbuild':
>          if len(builder_args) == 0:
>              builder_args.append('-ba')
> -        builder_args.extend([
> -            '--define "_topdir %s"' % os.path.abspath(options.export_dir),
> -            '--define "_specdir %%_topdir/%s"' % options.export_specdir,
> -            '--define "_sourcedir %%_topdir/%s"' % options.export_sourcedir])
> +        if not options.use_mock:
> +            builder_args.extend([
> +                '--define "_topdir %s"' % 
> os.path.abspath(options.export_dir),
> +                '--define "_specdir %%_topdir/%s"' % options.export_specdir,
> +                '--define "_sourcedir %%_topdir/%s"' % 
> options.export_sourcedir])

This must be moved to setup_mock() since this function is available for
setting up the mock usage and otherwise we might fail to set the paths
if someone sets another builder than rpmbuild.

If you then swap the setup_builder() and setup_mock() calls as outlined
in my other mail most of the if/else goes away.

Good to apply after this change.

Cheers,
 -- Guido

>  
>  
>  def packaging_tag_data(repo, commit, name, version, options):
> -- 
> 2.8.1
> 
> _______________________________________________
> git-buildpackage mailing list
> git-buildpackage@lists.sigxcpu.org
> http://lists.sigxcpu.org/mailman/listinfo/git-buildpackage
> 
_______________________________________________
git-buildpackage mailing list
git-buildpackage@lists.sigxcpu.org
http://lists.sigxcpu.org/mailman/listinfo/git-buildpackage

Reply via email to