[git-buildpackage] [PATCH] Add --git-packaging-exclude to gbp buildpackage-rpm
Tzafrir Cohen
tzafrir at debian.org
Thu Feb 4 18:34:31 CET 2016
Add an option to exclude copying some of the files from the source tree
to the packaging directory (a single regular expression).
This can be handy when running gbp buildpackage-rpm from a complete
source tree in a non-native mode and and some files in the top-level
directory can't or should not be copies to the packaging directory.
Signed-off-by: Tzafrir Cohen <tzafrir at debian.org>
---
gbp/config.py | 1 +
gbp/scripts/buildpackage_rpm.py | 7 +++++++
tests/component/rpm/test_buildpackage_rpm.py | 14 ++++++++++++++
3 files changed, 22 insertions(+)
diff --git a/gbp/config.py b/gbp/config.py
index 3d254ee..bc43485 100644
--- a/gbp/config.py
+++ b/gbp/config.py
@@ -651,6 +651,7 @@ class GbpOptionParserRpm(GbpOptionParser):
'vendor' : 'Downstream',
'packaging-branch' : 'master',
'packaging-dir' : '',
+ 'packaging-exclude' : '',
'packaging-tag-msg' : ('%(pkg)s (vendor)s release '
'%(version)s'),
'packaging-tag' : 'packaging/%(version)s',
diff --git a/gbp/scripts/buildpackage_rpm.py b/gbp/scripts/buildpackage_rpm.py
index 00582df..340f130 100644
--- a/gbp/scripts/buildpackage_rpm.py
+++ b/gbp/scripts/buildpackage_rpm.py
@@ -21,6 +21,7 @@
from six.moves import configparser
import os
import shutil
+import re
import sys
import gbp.log
@@ -438,6 +439,10 @@ def build_parser(name, prefix=None, git_treeish=None):
"'%(export)s'")
export_group.add_config_file_option(option_name="packaging-dir",
dest="packaging_dir")
+ export_group.add_config_file_option(option_name="packaging-exclude",
+ dest="packaging_exclude",
+ help="pattern of files to exclude from exporting from " +
+ "top-level source directory to packaging directory")
export_group.add_config_file_option(option_name="spec-file",
dest="spec_file")
return parser
@@ -548,6 +553,8 @@ def main(argv):
src = os.path.join(dump_dir, fname)
if fname == spec.specfile:
dst = os.path.join(spec_dir, fname)
+ elif re.match(options.packaging_exclude, fname):
+ continue
else:
dst = os.path.join(source_dir, fname)
try:
diff --git a/tests/component/rpm/test_buildpackage_rpm.py b/tests/component/rpm/test_buildpackage_rpm.py
index 4f0c290..6dd5317 100644
--- a/tests/component/rpm/test_buildpackage_rpm.py
+++ b/tests/component/rpm/test_buildpackage_rpm.py
@@ -24,6 +24,7 @@ import re
import shutil
import stat
import subprocess
+import tempfile
from nose import SkipTest
from nose.tools import assert_raises, eq_, ok_ # pylint: disable=E0611
@@ -369,6 +370,19 @@ class TestGbpRpm(RpmRepoTestBase):
eq_(mock_gbp(['--git-builder=true']), 1)
eq_(mock_gbp(['--git-ignore-branch', '--git-builder=true']), 0)
+ def test_packaging_exclude_option(self):
+ """Test the --packaging-exclude option"""
+ repo = self.init_test_repo('gbp-test')
+
+ packaging_dir = tempfile.mkdtemp(prefix='gbp_packaging-')
+ eq_(mock_gbp(['--git-no-build', '--git-packaging-exclude=\.patch',
+ '--git-packaging-dir=' + packaging_dir]), 0)
+
+ # Test building when not on any branch
+ repo.set_branch(repo.rev_parse('HEAD'))
+ eq_(glob.glob("../rpmbuild/SOURCES/*.patch"), [])
+ shutil.rmtree(packaging_dir)
+
def test_option_submodules(self):
"""Test the --git-submodules option"""
repo = self.init_test_repo('gbp-test')
--
2.7.0
--
Tzafrir Cohen | tzafrir at jabber.org | VIM is
http://tzafrir.org.il | | a Mutt's
tzafrir at cohens.org.il | | best
tzafrir at debian.org | | friend
More information about the git-buildpackage
mailing list