From 9a168f86b5f292c539d7fd143e06272ddae97d68 Mon Sep 17 00:00:00 2001
From: Alec Leamas <leamas.alec@gmail.com>
Date: Fri, 8 Feb 2013 11:39:09 +0100
Subject: [PATCH 2/7] Handle '+' characters i package name (BZ908830)
Caused a crash when a package named *c++* was fed to a regex which
tried to interpret the '+' characters. No other regex reserved
chars [\^$.|?*() should realistically be in package names(?). There
may be other places affected by this, though.
Conflicts:
plugins/generic.py
---
plugins/generic.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/plugins/generic.py b/plugins/generic.py
index f2d8235..21ccbb0 100644
--- a/plugins/generic.py
+++ b/plugins/generic.py
@@ -226,9 +226,14 @@ class CheckCleanBuildroot(GenericCheckBase):
def run(self):
has_clean = False
- regex = 'rm\s+\-[rf][rf]\s+(%{buildroot}|$RPM_BUILD_ROOT)'
- regex = rpm.expandMacro(regex)
+ regex = r'rm\s+\-[rf][rf]\s+(@buildroot@|$RPM_BUILD_ROOT)'
+ buildroot = rpm.expandMacro('%{buildroot}')
+ # BZ 908830: handle '+' in package name.
+ buildroot = buildroot.replace('+', r'\+')
+ regex = regex.replace('@buildroot@', buildroot)
install_sec = self.spec.get_section('%install', raw=True)
+ self.log.debug('regex: ' + regex)
+ self.log.debug('install_sec: ' + install_sec)
has_clean = install_sec and re.search(regex, install_sec)
if self.flags['EPEL5']:
self.text = 'EPEL5: Package does run rm -rf %{buildroot}' \
--
1.8.1