diff --git a/spec_cleaner/rpmpreamble.py b/spec_cleaner/rpmpreamble.py index 36fa54b..e9e1ce9 100644 --- a/spec_cleaner/rpmpreamble.py +++ b/spec_cleaner/rpmpreamble.py @@ -99,6 +99,8 @@ def __init__(self, options): 'nosource': self.reg.re_nosource, # for source, we have a special match to keep the source number # for patch, we have a special match to keep the patch number + 'buildsystem': self.reg.re_buildsystem, + 'buildoption': self.reg.re_buildoption, 'buildrequires': self.reg.re_buildrequires, 'buildconflicts': self.reg.re_buildconflicts, 'buildignores': self.reg.re_buildignores, @@ -500,6 +502,14 @@ def add(self, line): ) return + elif self.reg.re_buildoption_phase.match(line): + match = self.reg.re_buildoption_phase.match(line) + value = match.group(2) + self._add_line_value_to( + 'buildoption_phase', value, key='BuildOption{0}'.format(match.group(1)) + ) + return + elif self.reg.re_bcond_with.match(line): self._add_line_to('bconds', line) return diff --git a/spec_cleaner/rpmpreambleelements.py b/spec_cleaner/rpmpreambleelements.py index 9024264..27d3991 100644 --- a/spec_cleaner/rpmpreambleelements.py +++ b/spec_cleaner/rpmpreambleelements.py @@ -30,6 +30,8 @@ class RpmPreambleElements(object): 'source': 'Source', 'nosource': 'NoSource', 'patch': 'Patch', + 'buildsystem': 'BuildSystem', + 'buildoption': 'BuildOption', 'buildrequires': 'BuildRequires', 'buildconflicts': 'BuildConflicts', 'buildignores': '#!BuildIgnore', @@ -66,6 +68,9 @@ class RpmPreambleElements(object): 'source', 'nosource', 'patch', + 'buildsystem', + 'buildoption', + 'buildoption_phase', 'patternprovides', # fake provides with special function for patterns 'patternrequires', # fake requires with special function for patterns 'patternrecommends', # fake recommends with special function for patterns diff --git a/spec_cleaner/rpmregexp.py b/spec_cleaner/rpmregexp.py index 72575a3..6e2e20a 100644 --- a/spec_cleaner/rpmregexp.py +++ b/spec_cleaner/rpmregexp.py @@ -57,6 +57,9 @@ class Regexp(object): re_source = re.compile(r'^Source(\d*):\s*(.*)', re.IGNORECASE) re_nosource = re.compile(r'^NoSource:\s*(.*)', re.IGNORECASE) re_patch = re.compile(r'^((?:#[#\s]*)?)Patch(\d*):\s*(\S*)', re.IGNORECASE) + re_buildsystem = re.compile(r'^\s*BuildSystem:\s*(\S*)', re.IGNORECASE) + re_buildoption = re.compile(r'^BuildOption:\s*(.*)', re.IGNORECASE) + re_buildoption_phase = re.compile(r'^BuildOption(\([^)]+\)):\s*(.*)', re.IGNORECASE) re_buildrequires = re.compile(r'^(BuildRequires|BuildPreReq):\s*(.*)', re.IGNORECASE) re_buildconflicts = re.compile(r'^BuildConflicts:\s*(.*)', re.IGNORECASE) re_buildignores = re.compile(r'^#!BuildIgnore:\s*(.*)', re.IGNORECASE)